文章目录[隐藏]
第二章介绍内置类型,本章介绍抽象数据类型库。
– 其中string和vector是两种最重要的标准库类型,前者支持可变长字符串,后者表示可变长的集合。
– 还有一种标准库类型是迭代器,它是string和vector的配套类型,常被用于访问string中的字符和vector中的元素。
第三章 字符串、向量和数组
-
头文件不应包含using声明。
标准库类型string
#include <string>using std::string
-
初始化string
-
直接初始化(direct initialization)
-
拷贝初始化(copy initial本文来源gao@daima#com搞(%代@#码@网2ization):使用等号
string s1;string s2(s1);string s2 = s2;string s3("hiya");string s3 = "hiya";string s4(10, 'c'); //s4的内容是cccccccccc
-
string对象上的操作
1. cout << s2. cin >> s //将string对象读入s,遇到空白停止3. getline(is, s) //从输入流is中读取一行赋给s(换行符被读取了,但被丢弃而没有赋给s),返回is4. s.empty() //s为空返回true,否则返回false5. s.size()6. s[n] //返回s中第n个字符的引用,位置n从0计起 7. s1 + s2 //返回s1和s2连接后的结果8. s1 = s29. s1 == s210. s1 != s211. <, <=, >, >=
-
逻辑非运算符(!)
-
string::size_type类型:s.size()的返回值类型,是string类的配套类型。它是一个无符号类型的值,能够存放下任何string对象的大小。
-
处理string对象中的字符
-
cctype头文件:对单个字符的判断或处理的函数
isupper(c) //c是大写字母时为真islower(c)tolower(c) //如果c是大写字母,则输出对于的小写字母;否则原样输出toupper(c)isalpha(c) //c是字母时为真isdigit(c) //c是数字时为真isalnum(c) //c是字母或数字时为真ispunct(c) //c是标点符号时为真isspace(c) //c是空白时为真(即c是空格、横向制表符、纵向制表符、回车符、换行符、进纸符的一种)iscntrl(c) //c是控制字符时为真isgraph(c) //c不是空格但可打印时为真isprint(c) //c是可打印字符时为真(即c是空格或具有可视形式)isxdigit(c) //十六进制数
-
使用C++版本的C标准库头文件,形如name.h,C++++中这些文件命名为cname,内容一样,且头文件cname中定义的名字从属于命名空间std。
-
范围for(range for)语句
for (declaration : expression) statement例如:string str("some string");//每行输出str中的一个字符for(auto c : str) cout << c <<endl;
标准库类型vector
vector是一个类模板(class template)。vector表示对象的集合,其中所有对象的类型都相同。集合中的每个对象都有一个与之对应的索引,索引用于访问对象。vector也常被称为容器(container).
-
定义和初始化vector对象
vector<T> v1vector<T> v2(v1)vector<T> v2 = v1vector<T> v3(n, val)vector<T> v4(n)vector<T> v5{a,b,c...}vector<T> v5 = {a,b,c...}