c++里有大部分字符的操作都在#include<cstring>这个库中,这个库的函数在考试的时候都是可以用的,这个库里包含了很多字符串操作函数,特别是string这个数据类型特别优美,它的基本操作和char都差不多,但是它支持比较大小,而且可以拼接字符,就比如 string a[10],这时我们定义了一个字符串数组,我们将a[1]里储存‘abcd’将a[2]里储存‘efg’ 我们接下来写出 a[1]+a[2]可以得到字符串‘abcdefg’,如果我们a[2]+a[1]的话我们可以得到‘efgabcd’ ,并且,我们比较a[2]+a[1]和a[1]+a[2]是直接比较字典序的,可以直接得到a[2]+a[1]>a[1]+a[2],这是因为在string中重载了‘<’‘>’这两个运算符,在运算string类型的时候直接比较字典序。

下面有一道非常水的练习题:

P1012 拼数

提交49.07k
通过24.21k
时间限制1.00s
内存限制125.00MB
提交代码加入收藏
题目提供者CCF_NOI
难度普及-
历史分数100

提交记录查看题解

推荐题目

 查看推荐
展开

题目描述

设有nn个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。

例如:n=3n=3时,33个整数1313,312312,343343联接成的最大整数为:34331213

又如:n=4时,4个整数7,4,13,246联接成的最大整数为:7424613

输入格式

第一行,一个正整数nn。

第二行,n个正整数。

输出格式

一个正整数,表示最大的整数

输入输出样例

输入 #1复制

3
13 312 343
输出 #1复制

34331213

我们看到这一题就可以很轻易的想到排序,只是将普通的排序中的比较变成了字符串比较,比如样例中 13 312 343 ,我们拿着先从a[1]:13开始将13312和31213比较,明显31213比13312大,交换位置,a[1]位置已经变成了312,我们接着拿a[1]与下面比较,312343和343312比较,明显343312比312343大,交换位置,这时的a[1]变成了343312,这一轮比较完成,我们接下来拿a[2]:13来和它后面的数据继续比较,我们看13312和31213比较,明显31213比较大,交换位置,至此整个比较过程已经结束,我们将这三个元素顺序输出,得到34331213.

Code:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
string a[];
int n;
cin>>n;
for(int i=;i<=n;i++){
cin>>a[i];
}
for(int i=;i<n;i++){
for(int j=i+;j<=n;j++){
if(a[i]+a[j]<a[j]+a[i])
swap(a[j],a[i]);
}
}
for(int i=;i<=n;i++) cout<<a[i];
}

谢谢阅读.

关于C++ string 的神奇用法的更多相关文章

  1. C++语言中std::array的神奇用法总结,你需要知道!

    摘要:在这篇文章里,将从各个角度介绍下std::array的用法,希望能带来一些启发. td::array是在C++11标准中增加的STL容器,它的设计目的是提供与原生数组类似的功能与性能.也正因此, ...

  2. 标准C++中的string类的用法总结

    标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有 ...

  3. #define中 #与##的神奇用法linux学习 (转)

    #define中 #与##的神奇用法linux学习 (转) #define f(a,b) a##b #define d(a) #a #define s(a) d(a) void main( void ...

  4. Linux中“!"的神奇用法

    前言 实际上,不起眼的“!”在linux中有着很多让你惊叹的妙用.本文就来细数那些“!”的神奇用法. 执行上一条命令 例如,在执行完上面一条命令后,可以使用下面的方式再次执行上一条命令: $ wher ...

  5. 【opencv基础】Rect类的神奇用法

    前言 最近看github上源码发现对两个cv::Rect使用相与(&)操作,猛地感觉自己蒙啦,Rect类还有这种神奇用法?!翻看opencv官网Rect类,果然如此! opencv中Rect类 ...

  6. sstream头文件-getline 函数 和 stringstream函数 和string的常见用法

    2017-08-12 19:50:50 writer:pprp getline函数可以读入一行的字符,不论有没有空格 第一个参数,流 第二个参数 ,将流读入的地方 第三个参数,当读到某个字符的时候停止 ...

  7. 详解 SWT 中的 Browser.setUrl(String url, String postData, String[] headers) 的用法

    http://hi.baidu.com/matrix286/item/b9e88b28b90707c9ddf69a6e ———————————————————————————————————————— ...

  8. cat和cp的神奇用法:制作U盘安装盘

    使用U盘安装debian,U盘的制作方法: 方法一: https://www.debian.org/doc/manuals/debian-handbook/installation.zh-cn.htm ...

  9. 由一个订单推送想到了ObservableCollection的神奇用法

    最近在做taobao的一个卖家应用,需要订阅taobao的订单推送,示例代码如下: 看到上面的OnMessage场景之后,我突然就鬼使神差的在想最近写的一个服务,其中的一个功能是需要定时的轮询一个集合 ...

随机推荐

  1. Java学习day7面向对象编程1-对象和类

    一.Java编程中对象和类的概念 1,什么是类? 答:类是客观存在的,抽象的,概念的东西. 2,什么是对象? 答:对象是具体的,实际的,代表一个事物.例如:车是一个类,汽车,自行车就是他的对象. 关于 ...

  2. TensorFlow 解决“ImportError: Could not find 'cudnn64_6.dll'”

    解决“ImportError: Could not find 'cudnn64_6.dll'” 1. 问题描述 运行一个基于Tensorflow的代码时报错,如下所示: ImportError: Co ...

  3. 关于html5 video

    获取视频长度 <video id="video" width="200px" height="auto" src="vide ...

  4. vue传值(小demo)

    vue+element ui实现的.解释大多在代码中(代码臭且长,有错误请指正)-- 代码如下: <template>  <div class="userList" ...

  5. HTML替换元素,非替换元素和控制元素

    替换元素:元素内容由标签的属性来设置,标签其实就是一个占位符.替换元素因为元素内容来自外部资源,所以这些标签大多具有src,指明要引入的资源路径,所以大多仅需要一个标签就可以.例如:<link ...

  6. Dubbo源码学习总结系列七---注册中心

    Dubbo注册中心是框架的核心模块,提供了服务注册发现(包括服务提供者.消费者.路由策略.覆盖规则)的功能,该功能集中体现了服务治理的特性.该模块结合Cluster模块实现了集群服务.Dubbo管理控 ...

  7. linux grep 设置高亮显示

    [root@eric ~]# vi /etc/profile alias grep='grep --color=auto' [root@eric ~]# source /etc/profile

  8. Taro -- 获取用户手机号

    1. 安装 Taro 脚手架工具 安装 Taro 开发工具 @tarojs/cli 使用 npm 或者 yarn 全局安装 $ npm install -g @tarojs/cli $ yarn gl ...

  9. SSM架构 (Spring 5.0.2)添加Jackson

    第一步添加jsckson的包 <dependency> <groupId>javax.annotation</groupId> <artifactId> ...

  10. 从1到n整数中1出现的次数(整数中1出现的次数)

    题目 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了.AC ...