STL的基本操作指令

list :
Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢.

assign() 给list赋值
back() 返回最后一个元素
begin() 返回指向第一个元素的迭代器
clear() 删除所有元素
empty() 如果list是空的则返回true
end() 返回末尾的迭代器
erase() 删除一个元素
front() 返回第一个元素
get_allocator() 返回list的配置器
insert() 插入一个元素到list中
max_size() 返回list能容纳的最大元素数量
merge() 合并两个list
pop_back() 删除最后一个元素
pop_front() 删除第一个元素
push_back() 在list的末尾添加一个元素
push_front() 在list的头部添加一个元素
rbegin() 返回指向第一个元素的逆向迭代器
remove() 从list删除元素
remove_if() 按指定条件删除元素
rend() 指向list末尾的逆向迭代器
resize() 改变list的大小
reverse() 把list的元素倒转
size() 返回list中的元素个数
sort() 给list排序
splice() 合并两个list
swap() 交换两个list
unique() 删除list中重复的元素

String类:
1) string s; //生成一个空字符串s
2) string s(str) //拷贝构造函数生成str的复制品
3) string s(str,index) //将字符串str内“始于位置index”的部分当作字符串的初值
4) string s(str,index, n) //将字符串str内“始于index且长度顶多n”的部分作为字符串的初值
5) string s(cstr) //将C字符串作为s的初值
6) string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。
7) string s(n,c) //生成一个字符串,包含n个c字符
8) string s(str.begin(),str.end()) //以区间begin():end() (不包含end())内的字符作为字符串s的初值
1) =,assign() //赋以新值
2) swap() //交换两个字符串的内容
3)+=,append(),push_back() //在尾部添加字符
4) insert() //插入字符
5) erase() //删除字符
6) clear() //删除全部字符
7) replace() //替换字符
8) + //串联字符串
9)==,!=,<,<=,>,>=,compare() //比较字符串
10)size(),length() //返回字符数量
11) max_size() //返回字符的可能最大个数
12) empty() //判断字符串是否为空
13) capacity() //返回重新分配之前的字符容量
14) reserve() //保留一定量内存以容纳一定数量的字符
15) [ ], at() //存取单一字符
16)>>,getline() //从stream读取某值
17) << //将谋值写入stream
18) copy() //将某值赋值为一个C_string
19) c_str() //将内容以C_string返回
20) data() //将内容以字符数组形式返回
21) substr() //返回某个子字符串
22)查找函数
23)begin() end() //提供类似STL的迭代器支持
24) rbegin() rend() //逆向迭代器
25) get_allocator() //返回配置器

vector动态数组
1 包含头函数 #include<vector>
2 函数的声明: vector<int> v;
       vector<int> v[maxn];
       vector<int> v(100,1); //100个1
3 操作常用:
  v.push_back(x); 在最后添加一个元素x
  v.pop_back(); 删去最后一个元素
  v.begin(); 返回第一个元素的指针
  v.end();返回最后一个元素的指针
  v.at(n);返回n位置的元素
  v.clear();清空数组
  v.size();返回数组长度
  v.front();返回第一个元素
  v.back();返回最后一个元素
  v.empty();如果数组为空返回true,否则返回false
  v.resize(n);重新定义数组大小为n
set 元素
1、包含头函数: #include<set>
2、函数声明: set<int> s; (string等)
3、set是集合,不会包含重复的元素。因此可以用来查找统计不重复的元素
4、操作常用:
  s.insert(x);插入元素x
  s.erase(x);删除元素x(如果x存在)
  if (s.find(x)!=s.end()) 判断元素是否属于集合(因为如果不属于返回值为s.end())
  s.size();返回集合长度
  s.empty();如果集合为空,则返回true
  s.clear();清空集合
  s.begin();指向第一个元素位置
  s.end();指向最后一个元素后面
  set<int>::iterator it; 定义一个指针
  s.count(i); i 在集合中,返回 1
map 映射
1、包含头函数: #include<map>
2、 函数声明: map<int,string> m1;
       map<string,int> m2;
3 map是将数据进行一对一的对应,使其更好描述。
4 操作常用:
  (1)读入数据:m1[1]="the_first_one";
  (2)数据大小:len=m.size();
  (3) 数据遍历:for(int i=1;i<=len;i++) cout<<m1[i];
  (4)数据查找:m.count() ;不能返回位置,只返回true、false;
         m.find(); 返回位置指针,不在中就返回m.end(); 
  (5)数据清空:m.clear();
queue 队列
1、包含头函数 #include<queue>
2、声明: queue<int> q;
3、queue在队列的使用中,较自定义的数组更方便,所以常使用在广搜中。
4、操作常用:
  q.empty();如果队列为空则返回true
  q.front();返回队列第一个值
  q.pop();删除队列最后一个
  q.push(x);添加x到队列最后
  q.size();返回队列长度

(资料为搜索所得,如有侵权,联系立删)

posted @ 2018-02-18 16:53  zzuli风尘  阅读(2017)  评论(0编辑  收藏  举报