抽象 —— 不需要知道它们(类)是如何实现的,只需要知道这些抽象数据类型支持那些操作就可以了。
C++标准库中也包含有C标准库,在C++版本的C标准库的头文件都是'c'开头的,表示这个头文件源自C标准库。如ctype.h
C++中有限选用 '!=' 来判断循环条件,而不是 '<' 。
所有的标准容器都定义了相应的迭代器类型,而只有少数的容器支持下标操作。
const_iterator 和 const iterator不是一回事。
const iterator 几乎没什么用,因为该iterator一旦初始化,就不能再改变,及固定指向了容器中的某个元素。
const_iterator 用于读取容器中的元素,但不能改变其值。
任何改变容器长度的操作都会使已有的iterator失效。
使用bitset,如果要处理二进制位的有序集。
#include <iostream>
#include <vector>
#include <string>
#include <iterator>
using namespace std;
int main()
{
string word;
vector<string> text;
while (cin >> word) { //ctrl+d finished the input
text.push_back(word);
}
cout << "use for cicle:" <<endl;
for (vector<string>::size_type ix = 0; ix != text.size(); ++ix) {
text[ix] = "text[ix]: " + text[ix];
cout << text[ix] <<endl;
}
cout << "use iterator:" <<endl;
for (vector<string>::iterator iter=text.begin(); iter != text.end(); iter++) {
*iter = "iterator: " + *iter; //ok
cout << *iter <<endl;
}
cout << "use const_iterator:" <<endl;
for (vector<string>::const_iterator iter=text.begin(); iter != text.end(); iter++) {
//*iter = "const_iterator" + *iter; //error, const_iterator
cout << *iter <<endl;
}
return 0;
}