
这句代码涉及2个点:
1、C++有个命名空间机制,std就是一个命名空间。举例说,你想找个叫张三的人,那么可能会有很多个张三,如果你说是XXX市XXX县XXX镇的张三,那么估计就只有一个张三了(不是绝对),类似的,C++变量名、类名相同的可能性很大(尤其是工程较大的时候),于是引入了命名空间,把一些类、变量什么的组织在一个命名空间里,然后通过:命名空间名::类名等类似的方式访问类、对象。 std::list std::pair,std::wstring都是std命名空间下的类
2、C++有个泛型机制。例如比较两个数的大小(int,float,double和long等类型),那么一种方式就是重载函数:max(int a,int b),max(double a,double b)...针对不同的类型。但是另一种方式就是,把待比较的两个数的类型T可以作为参数,max(T a,T b),那么max不需要重载就可以适应大部分类型的比较。T在调用的时候确定类型。推而广之,有一些需要把类型做参数的类定义为模板,在使用的时候传类型作为参数。list类就是这样的一个模板类,需要一个类型参数,pair类就作为list的类型参数,即list<pair>param,但是pair同样是模板类,它也需要类型参数,而且需要2个,pair<wstring,wstring>,综合下来就是:
list<pair<wstring,wstring>>,然后由于这些类定义在std命名空间里,所以再加上std::来限定
std::string是标准C++的字符串实现,用法:要想使用标准C++中string类,必须要包含
#include
<string>//
注意是<string>,不是<string.h>,带.h的是C语言中的头文件
using
std::string
using
std::wstring
或
using
namespace
std
下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。
扩展资料:
string类的字符 *** 作:
const
char
&operator[](int
n)const
const
char
&at(int
n)const
char
&operator[](int
n)
char
&at(int
n)
operator[]和at()均返回当前字符串中第n个字符的位置,但at函数提供范围检查,当越界时会抛出out_of_range异常,下标运算符[]不提供检查访问。
const
char
*data()const//返回一个非null终止的c字符数组。
const
char
*c_str()const//返回一个以null终止的c字符串。
int
copy(char
*s,
int
n,
int
pos
=
0)
const//把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回实际拷贝的数目。
参考资料来源:string-百度百科
就用==判断啊:#include <iostream>
#include <string>
using namespace std
int main()
{
wstring s1=L"abcde"
wstring s2=L"abcda"
wstring s3=L"abcde"
cout<<(s1==s2)<<endl<<(s1==s3)<<endl
return 0
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)