• VC++常用STL操作


    vector:
    Constructors 构造函数
    Operators 对vector进行赋值或比较
    assign() 对Vector中的元素赋值
    at() 返回指定位置的元素
    back() 返回最末一个元素
    begin() 返回第一个元素的迭代器
    capacity() 返回vector所能容纳的元素数量(在不重新分配内存的情况下)
    clear() 清空所有元素
    empty() 判断Vector是否为空(返回true时为空)
    end() 返回最末元素的迭代器(译注:实指向最末元素的下一个位置)
    erase() 删除指定元素
    front() 返回第一个元素
    get_allocator() 返回vector的内存分配器
    insert() 插入元素到Vector中
    max_size() 返回Vector所能容纳元素的最大数量(上限)
    pop_back() 移除最后一个元素
    push_back() 在Vector最后添加一个元素
    rbegin() 返回Vector尾部的逆迭代器
    rend() 返回Vector起始的逆迭代器
    reserve() 设置Vector最小的元素容纳数量
    resize() 改变Vector元素数量的大小
    size() 返回Vector元素数量的大小
    swap() 交换两个Vector

    list:
    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中重复的元素

    stack:
    操作 比较和分配堆栈
    empty() 堆栈为空则返回真
    pop() 移除栈顶元素
    push() 在栈顶增加元素
    size() 返回栈中元素数目
    top() 返回栈顶元素

    queue:
    back() 返回最后一个元素
    empty() 如果队列空则返回真
    front() 返回第一个元素
    pop() 删除第一个元素
    push() 在末尾加入一个元素
    size() 返回队列中元素的个数

    ======================================================

     

    1.       set的删除操作

    #include<iostream>

    #include<set>

    #include<iterator>

    using namespace std;

     

    typedef std::set<int> INT_SET;

    int main()

    {

           INT_SET setMy;

           for(int i=0;i<10;i++)

           {

                  setMy.insert(i);

           }

     

           copy(setMy.begin(),setMy.end(),ostream_iterator<int>(cout,""));

           cout<<endl;

          

           int iValueToDelete=5;

     

           INT_SET::iterator position;

           for(position=setMy.begin();position!=setMy.end();)

           {

                  if(*position==iValueToDelete)

                  {

                         //这里要注意,position++

                         setMy.erase(position++);

                  }

                  else

                  {

                         cout<<*position;

                         position++;

                  }

           }

     

           cout<<endl;

     

           return 0;

    }

     

    2.       map的删除操作

    #include<iostream>

    #include<map>

    #include<iterator>

    using namespace std;

     

    typedef std::map<int,int> INT_MAP;

    int main()

    {

           INT_MAP mapMy;

           for(int i=0;i<10;i++)

           {

                  mapMy.insert(INT_MAP::value_type(i,i*10+1));

           }

     

           INT_MAP::iterator position;

           for(position=mapMy.begin();position!=mapMy.end();position++)

           {

                  std::cout << "(" << position->first << "," << position->second <<")";

           }

           cout<<endl;

          

           int iValueToDelete=5;

     

          

           for(position=mapMy.begin();position!=mapMy.end();)

           {

                  if(position->first==iValueToDelete)

                  {

                         //这里要注意,position++

                         mapMy.erase(position++);

                  }

                  else

                  {

                         cout<<"<"<<position->first<<":"<<position->second<<">";

                         position++;

                  }

           }

     

           cout<<endl;

     

           return 0;

    }

     



  • 相关阅读:
    (论坛答疑点滴)DataGrid模板列中控件的事件中怎么知道是哪行触发的事件?
    (论坛答疑点滴)怎么后台添加CheckBoxList并且得到选择结果
    (论坛答疑点滴)联合主键的情况怎么在DataGrid中利用DataKeys定位记录?
    (原创)按照一定的格式生成一定数量的随机数的例子
    (原创)DataGrid动态添加模板列的一个例子
    有的时候看似是对的往往是不对的
    (论坛答疑点滴)如何向某网址Post信息,并得到CookieContainer以便以后直接通过验证
    (论坛答疑点滴)怎么触发DataGrid模板列中控件的事件?
    (原创)利用vs.net快速开发windows服务(c#)
    (论坛答疑点滴)怎么给Table动态添加控件并且得到控件的值?
  • 原文地址:https://www.cnblogs.com/tuzhiye/p/1424541.html
Copyright © 2020-2023  润新知