C++中一些容器的基本操作

< vector > 向量//可变数组
vector<T>
reference operator [] (size_type n); //数组方式访问元素
reference at (size_type n); //函数方式访问元素
void push_back (const value_type& val); //末尾插入
void pop_back(); //末尾弹出
reference front(); //头部元素
reference back(); //尾部元素
iterator insert (iterator position, const value_type& val); //插入一个元素
void insert (iterator position, size_type n, const value_type& val);
//插入n个元素
void insert (iterator position, InputIterator first, OutputIterator last);
//插入一个区间
< queue > 队列(先进先出)
queue<T>
value_type& front(); //头部元素
value_type& back(); //尾部元素
void push (const value_type& val); //入队(插入队尾)
void pop(); //出队(删除队头)
< priority_queue > 优先队列
priority_queue<T>
value_type& front(); //头部元素
void push (const value_type& val); //入队(插入队尾)
void pop(); //出队(删除队头)
//优先队列重载//特殊性
struct cmp1{
	bool operator() (int& a, int& b){
		return a>b;
	}
}
struct cmp2{
	bool operator() (int& a, int& b){
		return a<b;
	}
}
struct number1{
	int x;
	bool operator <(const number1& a) const{
		return x>a.x;
	}
}
struct number2{
	int x;
	bool operator <(const number2& a) const{
		return x<a.x;
	}
}
//大(队头)--> 小(队尾)
priority_queue<int> que1;
priority_queue<int,vector<int>, cmp2>que2;
priority_queue<number2>que3;
priority_queue<int,vector<int>, less<int> >que4;
/小(队头)--> 大(队尾)
priority_queue<int,vector<int>, cmp1>que5;
priority_queue<number1>que6;
priority_queue<int,vector<int>, greater<int> >que7;
< stack > 栈(先进后出)
stack<T>
value_type& top(); //栈顶元素
void push(const value_type& val); //入栈(插入栈顶)
void pop(); //出栈(弹出栈顶)
< set > 集合
pair<iterator, bool> insert (const value_type& val);
//插入元素,返回<插入位置迭代器,成功标记>
iterator find (const value_type& val) const;
//查找元素,没找到返回set::end
size_type count (const value_type& val) const; //元素计数,0/1
iterator lower_bound (const value_type& val) const; //找到第一个大于等于val的位置
iterator upper_bound (const value_type& val) const; //找到第一个大于val的位置
//=> lower_bound (set::begin(), set::end(), val)
< map > 映射
map<const key, T>
mapped_type& operator[] (const key_type& k); //数组方式访问元素
pair<iterator, bool> insert (const value_type& val);
//插入<const key,T>,返回插入位置和标记
iterator find(const key_type& k); //查找
size_type count (const key_type& k) const; //计数
iterator lower_bound (const key_type& k) const; //找到第一个大于等于k的位置
iterator upper_bound (const key_type& k) const; //找到第一个大于k的位置
//=> lower_bound (map::begin(), map::end(), val)

遍历

vector<int> ve={1,2,3,4,5,6,7,8,9,0}; //定义
for(vector<int>::iterator it=ve.begin();it!=ve.end();it++)
	cout<<*it<<endl;
for(auto it:ve) cout<<it<<endl; // in C++11
for(int i=0;i<ve.size();it++) cout<<ve[i]<<endl; //only for vector<>

猜你喜欢

转载自blog.csdn.net/weixin_44227356/article/details/103211181