1、string (标准库类型)
(1)初始化:
string s1;
string s2="hello world";
string s3(5,'a'); // s3="aaaaa";
string s4=s2;
string s5(s2);
string s6("value");
()与=的作用相似,()表示直接初始化 =表示拷贝初始化
(2)输入时,不读取空格,遇到空格读取结束。
(3) string类上的操作:
getline :读取一行,并输出. 用法:getline(cin,s1);
empty:判断字符串是否为空,若为空则返回1. 用法:ss.empty()
size:判断字符串的大小 用法: ss.size(),对于size()返回unsigned似乎是合情理的,但它返回的是 string::size_type类型(算是无符号类型)。
size_t: 用作数组下标的数据类型
(4)字符串加法:
规则:可以相加的元素有:string对象、字符、字符串。字符与字符或字符串与字符串不能直接相加,并且相加时必须有一个string对象。
c++中,字符串与string对象是不同的类型。
(5) 修改整个字符串,范围for语句(可用于修改字符串中的某些字符)
格式:for(auto 变量:表达式) 第一、for会遍历表达式中的每一个字符 第二、遍历时会将表达式中的每个字符赋给变量
(6)处理部分字符:使用下标 s[] 、使用迭代器
toupper isspace
auto: 声明的变量可以自动判断数据类型
2、Vector容器:
Vector是类模板。
(1)、形式:vector<type>v1;
(2)、初始化:vector<int>t(n,3); n个值为3的元素
vector<string>s(n,”hi”);n个值为hi的元素
vector<int>t(n);n个值为零的元素
vector<int>t{n};一个值为n的元素
vector<string>t(n);n个空字符串
vector<int>t{4,8};两个元素,一个值是4,一个是8
如果初始化使用了花括号的形式,但提供的值不能用来列表初始化,这时{}同()。
vector<string>t{10,”hi”};10个值为hi的字符串
(3)、对vector对象赋多个不同的值:
vector<int> t;
for(i=0;i!=100;i++)
t=push_back(i); //100个t,值为0~99
(4)、遍历vector:
范围for语句或使用下标
3、迭代器:
(1)迭代字符串:
for(autoc=s.begin();c!=s.end();++c)
c是一个指针
(2)不同类型的迭代器:
如:vector的迭代器it:vector<int>::iterator it;
String的迭代器it: string::iterator it;
若为const_iterator,则迭代器只能读
cbegin、cend, 迭代器只读
(3)迭代器解引用,可用于判断vector是否为空。
(*it).empty()等价于it->empty()
迭代器解引用就是取出迭代器指向的对象,进一步可以访问该对象的成员。