C++ 中各种容器的使用方法

STL中有各种各样的容器,例如:vector

编译环境
  • Ubuntu 14.04
  • C++ 11
头文件
  • #include < vector >
  • #include < map >
  • #include < algorithm >

vector的使用方法

vectorSTL中一个封装了动态大小数组的顺序容器,能够存放各种类型的对象。我们可以理解为,vector是一个能够存放任意类型的动态数组

  • 创建vector
vector<int> first;//创建一个空的整型vector
vector<int> second(4,100);//创建一个整型且包含4个元素值100的vector
vector<vector<int> > third;//创建一个二维整型vector
vector<vector<int> > fourth(3,vector<int>(4,0));//创建一个3行4列的二维整型vector,全部为0
  • vector删除函数erase原型
iterator erase (const_iterator position);
iterator erase (const_iterator first, const_iterator last);
  • 删除值为value的元素
for(vector<int>::iterator it=first.begin();it!=first.end();){
    if(*it==value)
        it=first.erase(it);//执行erase()函数后,会将下一个迭代器赋值给it,所以不需要执行it++;
    else
        it++;
}

map的使用方法

mapSTL中的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。

  • 创建map
map<int,int> first;//创建一个空的键(key)为整型,值(value)为整型的map
map<int,int> second(first.begin(),first.end());
map<int,int> third(second);
  • map初始化
first[1]=100;
first[2]=200;
first[3]=300;
  • map遍历
for (map<char,int>::iterator it=first.begin(); it!=first.end(); ++it)
    cout << it->first << " => " << it->second;
  • map删除函数erase原型
c++98
void erase (iterator position);
size_type erase (const key_type& k);
void erase (iterator first, iterator last);
c++11
iterator  erase (const_iterator position);
size_type erase (const key_type& k);
iterator  erase (const_iterator first, const_iterator last);

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐