1)抽象数据类型库 和 标准库类型(string :可变长字符串;vector:可变长的集合;迭代器:是string和vector的配套类型)
2)命名空间 using
a)我们基本上用到的是std,也可以显式的将他表现std::endl;表示编译器从std的作用域中寻找到endl的名字;
可以using std::cin; 一旦使用,我们将不能使用显式的使用方式。
b)头文件不应包含using;因为头文件的内容会被拷贝到所有引用它的地方
3)标准库string–可变长的字符序列
a)初始化:默认初始化“”;直接初始化,拷贝初始化
b)cin是遇到空白停止的;自动忽略开头的空白(空格换行制表等),从第一个字符开始读,知道遇到下一个空白;
c)getline读取一行,保留空白符。参数是输入流cin,string对象;直到遇到换行符为止。将所读内容传string对象中去,但是,不包含换行符。
d)empty()。判断string是否为空。size(),计算string对象的长度。
4)标准库类型vector
a)所有对象的类型相同。必须包含#include
容器! 其实是类模板。(C++有类模板和函数模板)
模板本身不是类或函数。编译器根据模板创建类或函数的过程称为实例化。
b)初始化:默认初始化,包含0个元素;vector ivec; 可以在运行时获取元素的值,再逐一添加。
允许将一个vector拷贝给另一个vector 。vector ivec2(ivied);这两个的类型必须相同。
列表初始化vector对象。vector articles = {“a”,”b”,”ab”};/vector articles{“a”,”b”,”ab”};C++11三个元素。
创建指定数量的元素。vector articles(10,’\0’);
如果vector对象的元素为内置类型,如int,则元素初始化为0;vector articles(10);
注:圆括号,构造;花括号,列表初始化。
c)添加元素
push_back:将一个值当成vector对象的尾元素压倒vector对象的尾端。
vector能高效快速的添加元素,所以在定义时设定大小是没有必要的。创建一个空的vector对象,在运行时动态的添加元素。
d)其它操作
不能用下标方式添加元素。