• 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();返回队列长度

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

  • 相关阅读:
    数据结构01——线性表
    hdu 6069 Counting Divisors (唯一正整数分解定理+素数筛)
    hdu 6053 TrickGCD (莫比乌斯)
    hdu 1695 GCD(莫比乌斯入门)
    poj 2096 Collecting Bugs (概率dp)
    DC.p4: programming the forwarding plane of a data-center switch
    Packet Transactions: High-level Programming for Line-Rate Switches
    P4: Programming Protocol-Independent Packet Processors
    Improving Network Management with Software Defined Networking
    Are We Ready for SDN? Implementation Challenges for Software-Defined Networks
  • 原文地址:https://www.cnblogs.com/kangdong/p/8452919.html
Copyright © 2020-2023  润新知