#include <array>
/*
array是固定大小的顺序容器
*/
std::array<int,5> myarray = {2, 16, 77, 34, 50};
myarray.begin(); //迭代器
myarray.end();
myarray.rbegin(); //返回指向数组容器中最后一个元素的反向迭代器
myarray.rend(); //返回指向数组容器中第一个元素的反向迭代器
myarray.size(); //返回容器中元素的数量
myarray.max_size(); //返回容器可容纳的最大元素数
myarray.empty(); //判断容器是否为空
myarray.front(); //引用
myarray.back();
myarray.data(); //返回数组对象中第一个元素的指针
myarray.fill(val); //用val填充数组所有元素
myarray.swap(); //交换数组中的内容
myarray.at(i); //返回数组中第n个位置的元素的引用。at会检查数组边界并通过抛出一个outofrange异常来判断n是否超出范围。
#include <vector>
/*
vector是表示可以改变大小的数组的序列容器
vector各种常见操作的复杂度如下:
随机访问:常数O(1)
在尾部增删元素:平摊常数O(1)
增删元素:O(n)
*/
std::vector<int> first(4, 100);
std::vector<int> second(first.begin(),first.end());
std::vector<int> myints;
myints.size();
myints.push_back(); //在vector的最后一个元素之后添加一个新元素
myints.pop_back(); //删除vector中的最后一个元素
myints.resize();
myints.capacity(); //返回当前为vector分配的存储空间大小,用元素表示
myints.reserve(); //请求vector容量至少足以包含n个元素
myints.insert(it, 2, 10); //通过在指定位置的元素之前插入新元素来扩展vector
myints.erase(); //从vector中删除单个元素(position)或一系列元素([first,last))
myints.clear(); //从vector中删除所有的元素,留下size为0的容器
myints.emplace(it+1, 200); //通过在position位置处插入新元素args来扩展容器
#include <string>
std::string<char> mystring;
mystring.substr(0,5); //求子串, 从0开始,长度为5的子串
mystring.append(); //在字符串结尾添加字符
mystring.replace(5,1,“qqq”); //(pos,len,str)
mystring.replace(it1,it2,"qqq"); //(iterator1,iterator2,string)
#include <stack>
std::stack<int> mystack;
mystack.push(1);
mystack.top();
mystack.pop();
#include<queue>
std::queue<int> myquque;
myqueue.push(1);
myqueue.front();
myqueue.back();
myqueue.pop();
#include <deque>
/*
双端队列,是具有动态大小的序列容器,可以在两端扩展或收缩
*/
std::deque<int> mydeque;
mydeque.push_back();
mydeque.push_front(); //在deque容器的开始位置插入一个新的元素
mydeque.pop_back();
mydeque.pop_front();
mydeque.emplace_front();
mydeque.emplace_back();
#include <forward_list>
/*
单向链表,是序列容器,允许在序列中的任何地方进行恒定的时间插入和擦除操作
*/
std::forward_list<int> mylist = {20, 30, 40};
mylist.before_begin() //返回指向容器中第一个元素之前的位置的迭代器
#include <map>
/*
关联容器,按照特定顺序存储由key value和mapped value组成的元素
*/
std::map<char,int> mymap;
mymap['a'] = 10;
mymap.begin();
mymap.key_comp(); //返回容器用于比较键的比较对象的副本
mymap.find(k); //在容器中搜索具有等于k的键的元素,若找到返回一个迭代器,否则返回map::end的迭代器
mymap.count(k); //在容器中搜索具有等于k的键的元素
mymap.lower_bound(); //将迭代器返回到下限
mymap.upper_bound(); //将迭代器返回到上限
#include <pair>
/*
将一对值结合在一起。每个值可以被first,second访问
*/
std::pair<string,double> mypair;
mypair.first();
mypair.second();
STL常用容器及其用法
最新推荐文章于 2024-08-21 18:16:36 发布