Java教程

STL容器

本文主要是介绍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 在容器末尾插入元素

这篇关于STL容器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!