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<>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想上天的狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值