首先得说一下,我是个菜逼,这个问题今天才发现,才理解是什么意思;;;;
编程大牛请忽略此文章,,,,给初学者交流一下经验吧;;;;;
临近期末考试了,又拿出之前做的水体浏览一下,大喜,,发现问题了;;;;
在之前的C语言中,我们会经常用 char定义一个字符或字符串,,,
当时在处理字符串长度,字符串比较的时候通常会加一个头文件 #include <string.h> 对吧;;;;
现如今呢,在c++中,,,,同样出现了一个 #include <string>;
这不禁让我迷惑,当时对于这个问题并没有想,一带而过了,,,
其实,,,在c++中 #include <string>表示的事模板(STL)中的头文件,那么在c++中;
总是喜欢用string来定义字符串;;;;;;
今天终于理解了他的好处,大家请看如下代码;;;;;
#include <iostream>
#include <string>
#include <algorithm>
using
namespace
std;
int
main()
{
string s[50005];
int
T,i=0,j=0;
cin>>T;
while
(T--)cin>>s[i++];
sort(s,s+i);
while
(i--)cout<<s[j++]<<endl;
}
代码很简单,却实现了字符串的字典序排列 ;;;;;
其实当时在疑惑string s[50005];;;这是什么鬼;
大家都知道想表达的本意是什么吧;;;就是定义一个二维数组,,开始我认为string就是单纯的像char一样呢,这就理解不通了;;
要输入好几组字符串,但是如果理解成char的话那就是只定义了一个只能装一个字符串;
现在真是觉得搞笑;;;其实这是c++中的模板的用法;;;;就是string 是一种特殊的类型容器,原因是他除了可作为自古类型的容器外,更多的是作为一种数据类型——字符串;;;可以像 int ,double,之类的基本数据类型那样定义string类型的数据,,,并进行各种运算。
所以要其字符串的长度的呢,,就不能用strlen了,因为两码事,,,需要用string类中的属性;;;
至于长度用 string name.length(); 或者 name.size();;;;
关于string的其他功能,,,,请问度娘,,,,不是本文重点;;;;