stl是一种容器,里面可以用的函数非常多,所以作为初学者,str的函数不同的容器容易搞混,这里我们就整体指明一下。
来吧,展示!!!
STL容器
- vector
- stack
- queue
- priority_queue
- set
- string
- map
- pair
大概就这几种我在这里集中说一下~~
声明
vector vector <int> a;
vector <string> b;
vector <int> a(10); //声明长度为10的vector
vector <int> a(20, 1); //声明长度为20的vector,全都初始化为1
stack stack <int> a;
stack <double> b;
queue queue <int> a;
queue <char> b; //画个圈圈圈出来
priority_queue priority_queue <int, vector <int>, less<int> > q;//从大到小
priority_queue<int, vector <int> , greater<int> > q;//从小到大
map map<int,int> a;
map<int, string> b;
map<string, string> c;
pair pair <int, int> a;
pair <int, string> b;
pair <double, int> c;
string string s;
set set <int> a;
set <string> b;
插入
vector a.push_back(); //从末尾插入
a.insert(a.begin() + 1, 3); //在下标为1的地方插入3
stack a.push();
queue a.push();//在末尾插入一个元素
priority_queue a.push();
map 1. a.insert(make_pair(1,2));//两种方法
2. a[1] = 2;
pair pair<int, double> a; 1. a = make_pair(1, 1.2);//两种方法
2. cin << a.first << a.second;
string a.insert(0,"zjl");//在下标为0的位置插入zjl这个字符串;注意这里要用双引号
set a.insert(x);//插入x
删除
vector a.pop_back();
a.erase(a.begin())//删除下标为0的元素
stack a.pop();//删除栈顶元素
queue a.pop();//删除队首的元素
priority_queue a.pop();//删除第一个元素
map
pair
string a.erase(3,2);//从下标3开始,删除2个字符
set a.erase(x);//删除指针x处的元素
返回第一个元素、最后一个元素
vector a.begin(); a.end();//注意这里不是返回元素,而是指向第一个元素和最后一个元素的迭代器
stack a.top();//返回栈顶元素
queue a.back(); a.front();//返回元素
priority_queue a.top(); a.back();//返回元素
map
pair
string
set s.begin();//返回指向set最开始位置数据的指针
s.end();//返回指向set最后一个数据单元+1的指针
查找元素
vector
stack
queue
priority_queue
map a.find();//查找一个元素
a.count();//返回指定元素出现的个数
a.lower_bound();//返回键值>= 给定元素的第一个位置
a.upper_bound();//返回键值 > 给定元素的第一个位置
pair
string a.find(str);//返回发现字符串首次出现的位置
a.find(str, bg);//从下标为bg的地方开始查找
set
这样是不是清楚多了~~
hhhhhh,奏乐