pair
位于头文件< iostream>中用来表示一个二元组或元素对
2.1 使用pair
定义一个pair对象表示一个平面面坐标点:
pair<double, double> p;
cin >> p.first >> p.second;
pair模版类需要两个参数:首元素的数据类型和尾元素的数据类型。pair模版类对象有两个成
员:first和second,分别表示首元素和尾元素。 向上述q中存入数据需要用到q.make_pair(first,second)
;
对pair排序默认先为first,后second,如果需要先对second排序,需要设一个比较函数
int cmp(pair<int ,int > a,pair<int,int>b){
return a.second > b.second;
}
set
set模版类的定义在头文件中,表示一个集合。数据存入其中后会自动去重,自带排序。虽然set自动去重,但是仍然可以用count()
求出某一点重复数据的个数
3.1.2 使用set
set<int> s;
set<double> ss;
set的基本操作:
s.begin() //返回指向第一个元素的迭代器
s.clear() //清除所有元素
s.count() //返回某个值元素的个数
s.empty() //如果集合为空,返回true(真)
s.end() //返回指向最后一个元素之后的迭代器,不是最后一个元素
s.erase() //删除集合中的元素
s.find() //返回一个指向被查找到元素的迭代器
s.insert() //在集合中插入元素
s.lower_bound() //返回指向大于(或等于)某值的第一个元素的迭代器
s.size() //集合中元素的数目
s.swap() //交换两个集合变量
s.upper_bound() //返回大于某个值元素的迭代器
vector
vector的基本操作:
#include<vector>
vector <int> s;
s[i] // 直接以下标方式访问容器中的元素
s.front() // 返回首元素
s.back() // 返回尾元素
s.push_back(x) // 向表尾插入元素x
s.size() // 返回表长
s.empty() // 表为空时,返回真,否则返回假
s.pop_back() // 删除表尾元素
s.begin() // 返回指向首元素的随机存取迭代器
s.end() // 返回指向尾元素的下一个位置的随机存取迭代器
s.clear() // 删除容器中的所有元素
s.swap(v) // 将s与另一个vector对象进行交换
string
string 可以赋值给char*,但是char*不能赋值给string
string使用:
#include<string>
string s;
cin >> s;
s += "sada";
s -= "da";
if(s[0] == 'a')
cout <<"s[0] == a"<<endll
stack
#include<stack>
stack<int> s;
a = 1;
s.push(1) //入栈;
s.pop() //出栈;
int Top = s.top() //访问栈顶
if(s.empty()==0) //判空,为空时返回1
cout << “非空” <<endl;
cout << s.size() <<endl;//访问栈中元素个数;
queue
点击进入queue
map
map为一个映射,相当于python中的字典
可以将map看作是由Key标识元素的元素集合,这类容器器也被称为“关联容器”,可以通过一个Key值来快速决定一个元素,因此非常适合于需要按照Key值查找元素的容器
#include <map>
map <int,int >m;
m[key] = value;// [key]操作是map很有特色的操作,如果在map中存在键值为
key的元素对, 则返回该元素对的值域部分,否则将会创建一个键值为key的元素对,值域为默认值。所以可以用该操作向map中插入元素对或修改已经存在的元素对的值域部分。
int i = m[key];
// 要注意的是,当与该键值相匹配的元素对不不存在时,会创建键值为key(当另一个元素是整形时,m[key]=0)的元素对。
map<string, int>::iterator it = m.find(key); // 如果map中存在与key相匹配的键值时,find操作将返
回指向该元素对的迭代器,否则,返回的迭代器等于map的end()(参⻅见vector中提到的begin()和end()
操作)。
//c11中可以用auto it = m.find(key);
m.erase(key);
// 删除与指定key键值相匹配的元素对,并返回被删除的元素的个数。
m.size();// 返回元素个数
m.empty();// 判断是否为空
m.clear();// 清空所有元素