//所有容器都有的
size();
empty();
clear();//队列没有
1、vector要尽量减少申请空间的次数,,不够的时候就直接变成两倍。
//初始化
vector a;//10个3
vectora[10];//10个vector
//遍历
//for (auto x:a)cout<
//添加数据
for(int i=0;i<10;i++)
a.push_back(i);
//迭代器
for(vector::iterator i=a.begin();i!=a.end();i++)
cout<<*i<
//vector数组的第一个数和最后一个数
cout<
//支持比较运算
vector a(4,3);
vectorb(3,4);
if(a
支持比较运算:以first为第一元素,second为第二元素
//定义与初始化
pairp;
p=make_pair(10,"xxx");
p={20,"aaa"};
string s="1234";
cout<
printf("%s\n",s);//不能正常输出
printf("%s\n",s.c_str());//可以正常输出
s.clear();
queueq;
//队列没有clear清空方法
q=queue();
for(int i=0;i<10;i++)
{
q.push(i);//添加队尾
}
q.pop();//删除队头
cout<
//默认是大顶堆
priority_queueheap;
//同样没有clear函数
for(int i=0;i<10;i++)
{
//q.push(i);
//要想按照小顶堆来排序可以加负号
heap.push(-1*i);
}
heap.pop();
cout<
//优先队列小根堆的定义方法
priority_queue,greater>heap;
for(int i=10;i>=1;i--)heap.push(i);
cout<
stack stk;
for(int i=0;i<10;i++)stk.push(i);
stk.pop();
cout<
支持队头队尾双端弹入弹出
dequedeq;
//队尾插入元素
deq.push_back(1);
cout<::iterator i=deq.begin();i!=deq.end();i++)
cout<<*i<<" ";
//队首弹出
deq.pop_front();
//队尾弹出
deq.pop_back();
cout<
setse;
multisetmse;
for(int i=0;i<10;i++)se.insert(i),mse.insert(i-i);
//注意find的用法
if(se.find(1)!=se.end())cout<<"找到了"<
setse;
multisetmse;
for(int i=0;i<10;i++)se.insert(i),mse.insert(i-i);
//lower_bound()返回大于等于x的最小的数
cout<<*se.lower_bound(1)<
//初始化
map a;
//插入
a["zzz"]=1;
a.insert(make_pair("aaa",2));
//可以当数组用 O(log(n))
cout<second<second<
增删改查的时间复杂度为O(1),不支持lower_bound和upper_bound操作(内部是没有序的),迭代器的加加减减也是不支持的
用一位代替一字节存储,省内存