P8 pair vector

pair是一个模板类,用于表示一对值的组合,用<utility>中

pair模板有两个模板参数,t1 t2,分别表示第一个值和第二个值类型

pair类有两个成员变量,frist和  cond,分别表示第一个值与第二个值

还有一些成员函数和特征,例如默认构造函数、带参数的构造函数、比较运算符重载等

使用pair类,可以方便地将两个值组合在一起,并进行传参、存储、操作

比如pair<int,string>  pair<3,"ww">   3默认会转入第一个first中的int “mike”传入string

输出时候用前面定义的p1.first p1.second p2.first p2.second

#include <iostream>
#include<utility>
using namespace std;int main()
{pair<int, double>p1(1, 3.14);pair<char, string>p2('a', "hello");cout << p1.first << ',' << p1.second << endl;cout << p2.first << ',' << p2.second << endl;return 0;
}

pair也可以嵌套,让一个pair 对象作为另一个pair对象的成员

相当于在上中可以用p1代替second的位置或者first位置,但取的时候要用second.first或者其他的

pair自带排序优先first先排序相等再看second

vector是动态数组容器,存相同类型的元素用<vector> 

vector <int/char/....>名字

大小是自动,索引从0开始,最后一个元素索引是size()-1

push_back可以在vector末尾添加元素

pop_back()删除末尾的元素 【保证vector非空】

insert插入指定位置

erase()删除指定位置  

size()获取元素的数量

empty()查找元素是否为空

resize()调整大小

begin()end()获取第一个/最后一个位置

#include <iostream>
#include<utility>
#include<vector>
#include<algorithm>
using namespace std;int main()
{vector<int>a = { 24,2 };sort(a.begin(), a.end());for(auto b : a) {cout << b << " ";
}return 0;
}

还有之前的unique相邻重复数字返回到最后并返回,并返回去掉数字后的数字