关于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场景之后,我突然就鬼使神差的在想最近写的一个服务,其中的一个功能是需要定时的轮询一个集合 ...
随机推荐
- Numerical Sequence (easy version)
http://codeforces.com/problemset/problem/1216/E1 E1. Numerical Sequence (easy version) time limit pe ...
- java视频资源
1.Java基础阶段 尚学堂_刘凯立_JavaSE基础视频 http://pan.baidu.com/s/1geCoY11 尚学堂_高淇_Java300集视频教程 https://pan.baidu. ...
- 魔板 (bfs+康托展开)
# 10027. 「一本通 1.4 例 2」魔板 [题目描述] Rubik 先生在发明了风靡全球魔方之后,又发明了它的二维版本--魔板.这是一张有 888 个大小相同的格子的魔板: 1 2 3 4 8 ...
- Leetcode Lect7 哈希表
传统的哈希表 对于长度为n的哈希表,它的存储过程如下: 根据 key 计算出它的哈希值 h=hash(key) 假设箱子的个数为 n,那么这个键值对应该放在第 (h % n) 个箱子中 如果该箱子中已 ...
- MySQL5.7 慢查询+DDL操作堵塞查询
数据库版本: mysql> select @@version; +------------+ | @@version | +------------+ | 5.7.26-log | +----- ...
- JavaScript基础1——在末尾添加节点
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 简述vue中v-if和v-show的区别
vue中的 v-if 和 v-show 二者都可以动态的控制元素的隐藏和显示,但是他们控制的原理是不同的 v-if v-if 控制元素显示或隐藏是把dom元素整个的渲染或者删除,如果删除,也就是页面中 ...
- 2018-8-10-xaml-添加-region
title author date CreateTime categories xaml 添加 region lindexi 2018-08-10 19:16:51 +0800 2018-03-15 ...
- python使用etcd
import sys import etcd client = etcd.Client( host='127.0.0.1', port=2379, allow_reconnect=True) clie ...
- 1085. PAT单位排行 (25)
每次 PAT 考试结束后,考试中心都会发布一个考生单位排行榜.本题就请你实现这个功能. 输入格式: 输入第一行给出一个正整数N(<=105),即考生人数.随后N行,每行按下列格式给出一个考生的信 ...