** set
属性:不允许元素重复,元素字典序排列,不提供下标操作符
声明:set<int> a;
插入:a.insert(b);
遍历:
set<int>::iterator a_it;//迭代器是静态的
for (a_it = a.begin(); a_it != a.end(); a_it++)
cout << *a_it;
判断是否是空:a.empty();
元素个数:a.size();
删除:a.erase(b);//删除第b+1个元素
清空:a.clear();
获取元素:
a_it=a.find(b);
cout<<*a_it;//*a_it返回第b+1个元素
a.count(b)第b+1个元素是否存在
** map
属性:关联数组,键索引字典序排列,键索引不允许重复,后面插入的会覆盖前面的。
声明:map<string,int> a;//键索引string类,关联值为int型
插入:a[b]=c;//b为string类,c为int型
遍历:
map<string, int>::iterator a_it;
for (a_it = a.begin(); a_it != a.end(); a_it++)
cout << a_it->first << " " << a_it->second << endl;//first为键索引
判断是否是空:a.empty();
元素个数:a.size();
删除:
a.erase(b) //b为string类,删除键索引为b的元素
a.erase(a_it) //删除迭代器a_it所指元素
A.erase(a_it1,a_it2)// 删除一段
清空:a.clear();
获取元素:
a_it = a.find(b); //寻找键索引为b返回指向该元素的迭代值
cout << a_it->first << " " << a_it->second << endl;
a.count(b) //键索引为b的元素是否存在
** string
用getline读取整行文本
string line;
while (getline(cin, line))
cout << line << endl;
操作:line.empty();line.size();line[n];
** stack
属性:栈,先进后出
声明:stack<int> a;
操作:
a.empty();
a.size();
a.pop();
a.top();
a.push(item);
** queue
属性:队列,先进先出
声明:queue<int> a;
操作:
a.empty();
a.size();
a.pop();
A.top();//具有优先级的元素
a.front(); //返回队首元素
a.back();//返回队尾元素
a.push(item);