STL容器

粗略的总结


  • stl容器

cin>>s;    空格,回车,EOF结束

getline(cin,s); 输入一行,空格不结束

长度s.size();

遍历:

for(int i=0;i<s.size();i++){

cout<<s[i];

}

拼接:string t=”123”;

string s=”456”;

s=s+t;//s=”123456”;

s=s+”789”;//s=”123456789”;

s=”00”+s;//s=”00123456789”

清空:s.clear();

  s.empty();//如果s为空则值为1,否则为0;

  • vector

一维的操作:
定义:vector<int>v;

插入:v.push_back(1);

cout<<v[0];

二维的操作:

vector< vector<int> > asd1;//定义

对于一维数组,可以使用size()获取其长度。

int size = asd.size();

对于二维数组,可以使用以下方法获取行、列的长度

int size_row = asd1.size();          //获取行数

int size_column = asd1[0].size();    //获取列数

直接赋值即可

asd1[1][1] = 1;

cout << asd1[1][1] <<endl;

asd1[1].push_back(23); //插入列元素

asd1.push_back(asd); //插入一行

删除行:

auto test1 = asd1.begin();

asd1.erase(++test1);

删除列:

auto test2 = test1.begin();

asd1[0].erase(++test2);

遍历:

vector<vector<int> >::iterator p1;

vector<int>::iterator p2;

for (p1 = a.begin(); p1 != a.end(); p1++){

        for (p2 = p1->begin(); p2 != p1->end(); p2++){

                cout << "[" << *p2 << "]";

        }

  • stack

stack<int>st;

先进后出
输入:
st.push(1);//在栈首增加
输出:
st.top();//输出栈首元素
st.pop();//删除栈首元素

重新定义就自动清空了
while(cin>>n) stack<int>st;

  • queue

queue<int>q;

先进先出

输入
q.push(1);

输出:
q.front();
q.pop();

优先队列

priority_queue<int>q;//大根堆,降序排序
输入:
q.push(1);  

输出
q.top();
q.pop();

priority_queue<int,vector<int>,greater<int>>tp;//小根堆,升序排序

  • set去重排序

set<int>st;
st.insert();
*st.begin();//第一个元素   *st.end();最后一个元素
st.find(1);//查找有无1这个元素;
st.count(1);//有几个元素1;
multiset<int>st;//不去重排序;

  • map数组

map<int,string>mp;//int相当于下标,string相当于内容
int和string的类型可以随意更改;
mp[1]=”123”;

  • deque双端队列

deque<int>d;

迭代器:

begin() 指向第一个元素位置

end() 指向最后一个元素后一个位置

rbegin() 指向第一个元素之前一个位置

rend() 指向最后一个元素位置

容量相关:

size() 返回容器大小

max_size() 返回容器最大容量

empty() 判断容器是否为空

resize() 改变容器大小

 成员访问:

使用[ ]方式访问,使用.at()方式访问

front()  返回第一个元素

back()  返回最后一个元素

容器调整:

assign 重新给容器分配元素

push_back 向容器末尾插入元素

push_front 向元素开头插入元素

pop_back 删除末尾元素

pop_front 删除开头元素

insert 向指定位置插入元素,返回值为指向最后一个插入位置的迭代器

erase 删除元素

swap 交换两个容器

clear 清空容器

emplace 向指定位置插入元素,只能插入单个元素

emplace_front 在容器开头插入元素(效率比push_front高)

emplace_back 在容器末尾插入元素

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值