俊介三

一天更新一点,一天积累一点

导航

c++容器-常用法

Posted on 2013-03-08 19:07  俊介三在前进  阅读(159)  评论(0)    收藏  举报

详见 http://www.cplusplus.com/reference/stl/

vector

View Code
#include <stdio.h>
#include <vector>

using namespace std;

int main(){
    vector<int>v;
    
    //把23加入到最后
    v.push_back(23);//23
    v.push_back(12);//23 12

    //把最后的数删掉
    v.pop_back();//23

    //把最后的数删除
    v.pop_back();//

    //清空
    v.clear();
    
    v.push_back(1);//1
    v.push_back(2);//1 2
    printf("%d\n",v[0]);//第一个数,相当于v.front();或v.at(0);
    printf("%d\n",v.back());//最后一个数

    //迭代器访问
    vector<int>::iterator i;
    for(i=v.begin();i!=v.end();i++){
        printf("%d\n",*i);
    }
    return 0;
}

list

View Code
#include <iostream>
#include <list>

using namespace std;

bool cmp(int i, int j){
    if(i<j) return true;
    else return false;
}

struct cmp2{
    bool operator() (int i, int j){
        return i<j;
    }
};

int main(){
    //构造函数
    list<int>l (4,100);
    l.push_back(3);

    //第一个和最后一个元素
    l.front();//1
    l.back();//3
    
    //最后加一个元素
    l.push_back(4);
    l.pop_back();
    
    //最前加一个元素
    l.push_front(1);
    l.pop_front();

    //排序 默认从小到大排序
    l.sort();

    //VC报错?
    //l.sort(cmp);
    
    //去重
    l.unique();

    list<int>j(2,5);

    //合并两个list
    l.merge(j);

    //反转
    l.reverse();

    list<int>::iterator i;
    for(i=l.begin();i!=l.end();i++){
        printf("%d\n",*i);
    }
    return 0;
}

set

View Code
#include <iostream>
#include <set>

using namespace std;

int main(){
    set<int> myset;
    
    //插入数据
    myset.insert(1);
    myset.insert(4);
    myset.insert(4);

    //找某个元素,找到返回它的迭代器,找不到返回myset.end()
    set<int>::iterator it = myset.find(1);
    myset.erase(it);

    //元素的数量
    myset.count();

    if(myset.find(100)==myset.end())
        printf("---\n");
    return 0;
}

map

View Code
#include <iostream>
#include <map>

int main ()
{
  std::map<char,int> mymap;
  std::map<char,int>::iterator it;

  //赋值
  mymap['a']=50;
  mymap['b']=100;
  mymap['c']=150;
  mymap['d']=200;

  //查找
  it=mymap.find('b');
  
  //清除一个
  mymap.erase (it);
  mymap.erase (mymap.find('d'));

  // print content:
  std::cout << "elements in mymap:" << '\n';
  std::cout << "a => " << mymap.find('a')->second << '\n';
  std::cout << "c => " << mymap.find('c')->second << '\n';

  return 0;
}