关于C++ string 的神奇用法
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 拼数
推荐题目
题目描述
设有nn个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。
例如:n=3n=3时,33个整数1313,312312,343343联接成的最大整数为:34331213
又如:n=4时,4个整数7,4,13,246联接成的最大整数为:7424613
输入格式
第一行,一个正整数nn。
第二行,n个正整数。
输出格式
一个正整数,表示最大的整数
输入输出样例
3
13 312 343
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 的神奇用法的更多相关文章
- C++语言中std::array的神奇用法总结,你需要知道!
摘要:在这篇文章里,将从各个角度介绍下std::array的用法,希望能带来一些启发. td::array是在C++11标准中增加的STL容器,它的设计目的是提供与原生数组类似的功能与性能.也正因此, ...
- 标准C++中的string类的用法总结
标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有 ...
- #define中 #与##的神奇用法linux学习 (转)
#define中 #与##的神奇用法linux学习 (转) #define f(a,b) a##b #define d(a) #a #define s(a) d(a) void main( void ...
- Linux中“!"的神奇用法
前言 实际上,不起眼的“!”在linux中有着很多让你惊叹的妙用.本文就来细数那些“!”的神奇用法. 执行上一条命令 例如,在执行完上面一条命令后,可以使用下面的方式再次执行上一条命令: $ wher ...
- 【opencv基础】Rect类的神奇用法
前言 最近看github上源码发现对两个cv::Rect使用相与(&)操作,猛地感觉自己蒙啦,Rect类还有这种神奇用法?!翻看opencv官网Rect类,果然如此! opencv中Rect类 ...
- sstream头文件-getline 函数 和 stringstream函数 和string的常见用法
2017-08-12 19:50:50 writer:pprp getline函数可以读入一行的字符,不论有没有空格 第一个参数,流 第二个参数 ,将流读入的地方 第三个参数,当读到某个字符的时候停止 ...
- 详解 SWT 中的 Browser.setUrl(String url, String postData, String[] headers) 的用法
http://hi.baidu.com/matrix286/item/b9e88b28b90707c9ddf69a6e ———————————————————————————————————————— ...
- cat和cp的神奇用法:制作U盘安装盘
使用U盘安装debian,U盘的制作方法: 方法一: https://www.debian.org/doc/manuals/debian-handbook/installation.zh-cn.htm ...
- 由一个订单推送想到了ObservableCollection的神奇用法
最近在做taobao的一个卖家应用,需要订阅taobao的订单推送,示例代码如下: 看到上面的OnMessage场景之后,我突然就鬼使神差的在想最近写的一个服务,其中的一个功能是需要定时的轮询一个集合 ...
随机推荐
- python sys模块导入和模块的使用
sys故名思意,就是系统模块,系统模块内置很多方法,怎么样去调用方法呢 1,argv 参数 sys.argv() 2,exit() 退出程序 sys.exit() 3,version 获取版本信息 ...
- 看漫画就能学SQL,简直太cool了
对于SQl, 很多人学不会的原因是从一开始就没明白,学这东西能干啥,学会了能有什么用.甚至有些人不知道'SQL'应该怎么读,以至于一开始兴致勃勃,但是学到一半放弃了. 注意:'sql'真的不能读成'烧 ...
- day02-css
技术分析 HTML的块标签: div标签: 默认占一行,自动换行 span标签: 内容显示在同一行 CSS概述: Cascading Style Sheets : 层叠样式表 主要用作用: 用来美化我 ...
- 封装操作mysql、redis
封装操作mysql: import pymysql class MyDb: def __init__(self,host,password,user,db,port=3306,charset='utf ...
- VNware上安装虚拟机Ubuntu16.10 并安装petalinux
1.下载 VMware VMware-workstation-full-15.0.0-10134415.exe 自己寻找激活码 Ubuntu镜像 UG1144 PetaLinux Tools Docu ...
- Centos抓包方法
1. 安装tcpdump工具 rpm -ql tcpdump #查看tcpdump是否安装 本机是安装的,yum安装: yum install tcpdump 2. tcpdump抓包 根据协议和端 ...
- 【Python】安装Python3,打印HelloWorld
安装地址: https://www.python.org/ 安装时勾选添加path然后一路next,搞定! 查看是否安装成功: cmd中输入python出现如下界面 在vscode中新建一个Hello ...
- 无法启用web调试服务器
场景:vs2005 webservice 项目属性中:web : 使用IIS web 服务器 http://localhost/WSMA --- >自动创建虚拟目录 点击调试的时候F ...
- springboot整合 thymeleaf 案例
1.运行环境 开发工具:intellij idea JDK版本:1.8 项目管理工具:Maven 4.0.0 2.GITHUB地址 https://github.com/nbfujx/springBo ...
- asp.net选择文件夹上传
HTML部分 <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index.aspx. ...