STL使用方法总结(入门)

Posted lidan-prime

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL使用方法总结(入门)相关的知识,希望对你有一定的参考价值。

Iterator

用于操作复杂的数据结构,类似于指针,指向数据结构的位置,*it用于读取数据

关于嵌套容器的迭代器使用:

set< vector<int> >::iterator it;

for(it=s.begin();it!=s.end();it++)

{

vector<int> ivec=*it;

for(vector<int>::iterator it2=ivec.begin();it2!=ivec.end();it2++)

cout<<*it2<<",";

ivec.clear();

cout<<endl;

}

 

 

Vector

可以随意插入,删除数据

  1. #include<vector>
  2. 定义及初始化

vector<int> vec;

Vector<int> vec(10);  指定元素个数

Vector<int>vec(arr,arr+n);

可以使用类似于数组的操作[]: vec[x];

  1. 基本操作:

Push_back() 添加到容器末尾

Size()  获取元素数量

Insert( pos, value)指定索引处插入元素

Insert(pos,cnt,value)指定索引处添加cnt个 value元素

Pop_back() 删除末位元素

Begin() 第一元素的迭代器

End() 迭代器

Swap()    void swap(vector &other)将两个矢量的内容交换

  1. 遍历

下标法:vec[i]  

迭代器法:

Vector<int>::iterator it;

For(it=vec.begin();it!=vec.end();it++)

Cout<<*iterator;

 

Stack

  1. #include<stack>
  2. 定义初始化

Stack<string>s;

  1. 基本操作:

  Push();

Pop(); 删除栈顶元素

Top(); 访问栈顶元素

Empty();

 

Queue

  1. #include<queue>
  2. Queue<int> q;
  3. Push(); 队尾插入

Pop(); 删除第一个元素

Empty();

Size();

 

 

Priopity_queue  

优先队列,实现自动排序

  1. #include<queue>
  2. Priopity_queue<int,vector<int>,greater<int> >pq; 从小到大

Priopity_queue<int,vector<int>,less<int> >pq; 从大到小

 

Map

元素默认按键的升序排列

  1. #include<map>
  2. Map<string,int>m;

可以使用类似数组的操作[]: m[key]=value

  1. 基本操作

Insert( make_pair<string,int>(key,value) ) 在原map后继续插入键值对

Insert( map<string,int>::value_type(key,value) ) 插入到map的最前面

获取map的key,value要用到迭代器

Map<string,int>::iterator it=m.begin(); 必须要获取迭代器首地址

String key=it->first; int val=it->second; 键key是第一个,值value是第二个

Erase(key); 根据key删除value

 

 

 

 

Set

元素默认升序排列

  1. #include<set>
  2. Set<int> s;

初始化:用数组存放数据,然后用数组初始化set

Int arr[5]={........};

Set<int> s(arr,arr+5);

自定义集合的排列顺序,编写class对象函数,判断大小:set<int,class> s;

  1. 基本操作:

Insert();

Erase();

Count(); 返回某个值元素的个数,也可用于判断集合中是否存在该值

Find(); 返回一个指向被查到元素的迭代器

 

以上是关于STL使用方法总结(入门)的主要内容,如果未能解决你的问题,请参考以下文章

STL初步

机试练习总结03:C++ STL初步

C++初阶---STL入门+(string)

C++笔记--面向对象(OOP)编程基础--STL入门与使用

stl入门

STL入门