定义容器:
vector< int > v1 ;
将数据装入容器: v1.push_back(1) ;
返回容器元素个数:v1.size()
取头部元素:v1.front();取尾部元素: v1.back()
头部赋值 v1.front() = 11 , 尾部赋值 v1.back() = 13 ; 它们可以作为“左值 ”是因为函数返回的是引用。
删除容器尾部元素: v1.pop_back();
vector使用数组下标的形式赋值时需要在定义时为vector分配内存空间。
vector<int> v1(10) ; 即包含10个元素。
vector<int> v2(v1.begin() , v1.begin()+2) ;
迭代器: .begin()指的是第一个元素位置, .end()指的是最后一个元素后面
正向遍历: iterator 对应有 begin() end()
逆向遍历: 使用 reverse_iterator 对应有 rbegin() rend()
区间删除
v1.erase(v1.begin(),v1.begin()+3) 删除前三个;
删除容器中所有的元素‘c’
for(vector<int>::iterator it = v1.begin() ; it !=v1.end() ; )
{
if ( *it == 'c')
{ v1.erase(it) ;}
else { it++ ; }
}
vector 头插 v1.insert(v1.begin() , 100 ); vector尾插 v1.insert(v1.end(), 200) ;
deque 与vector基本类似,只不过它是双端数组,也叫双端队列,即既可从尾部插入删除元素,也可头部插入删除元素。
obj.push_back pop_back ;
obj.push_front pop_front ;
求解某个值在deque中的索引。
deque<int>::iterator it = find(d1.begin(),d1.end(),-2)
如果it不是d1.end() ,则可以输出下标, cout << distance(d1.begin(),it) ;
C++里栈的实现用stack ,先进后出
stack<int> s1 ;
s1.push(1) ; s1.pop(); s1.top(). s1.size() s1.empty() ;
queue,队列 , 先进先出
queue<int> q1;
q1.push(1) ; q1.pop(); q1.front(). q1.size() q1.empty() ;