0、头文件:#include<vector>;  using namespace std;

1、定义: vector<type> vec;

2、迭代器

vector<type>::iterator it;
vector<type>::const_iterator it;
vector<type>::reverse_iterator it;
vector<type>::const_reverse_iterator it;

3、vector功能

存取元素的方法:

  vec[i] 和 vec.at(i) //存取第i个元素
  vec.front()  //存取第一个元素,注意 vce.front()=122;//表是给第一个元素赋值为122,等价于  vec[0]= 122;
  vce.back()  //存取最后一个元素

新增或移除元素的方法:

  vec.push_back();  //在容器最后加一个元素
  vec.insert();    //插入一個或多個元素至 vector 內的任意位置 

#include <iostream>
#include <vector> void print_vec(const std::vector<int>& vec)
{
for (std::vector<int>::const_iterator it=vec.begin();it!=vec.end();it++) {
std::cout << ' ' << *it;
}
std::cout << '\n';
} int main ()
{
std::vector<int> vec(,);
print_vec(vec); std::vector<int>::iterator it = vec.begin();
it = vec.insert(it, );
print_vec(vec); vec.insert(it,,);
print_vec(vec); // "it" no longer valid, get a new one: //不再可用**********
it = vec.begin(); std::vector<int> vec2(,);
vec.insert(it+, vec2.begin(), vec2.end());
print_vec(vec); int arr[] = { ,, };
vec.insert(vec.begin(), arr, arr+);
print_vec(vec);
}

  vec.pop_back()    // 刪除 vector 最尾端的元素
  vec.erase()  //刪除 vector 中一個或多個元素。
  vec.clear() //清空所有元素。

获取容器的长度和容量:

  vec.size()   // 取得 vector 目前持有的元素个数。
  vec.empty()  //如果 vector 內部为空,则返回 true 值。
  vec.capacity() // 取得 vector 目前可容納的最大元素个数。

改变容器的大小:

  vec.reserve()  //改变ector 的容量大小,容量只能增加,不可以減少。
  vec.resize()  //改变vector 目前持有的元素个数。

迭代四个:vec.begin() vec.end() vec.rbegin() vec.rend()

容器stack

栈(FIOL,First-in Last-out)三个主要的功能---存、取、删。

stack<int>  myStack ;
myStack.push(); //存
myStack.top(); //取
myStack.pop(); //删

容器map

#include <iostream>
#include<string>
#include<map>
using namespace std; int main ()
{
map<string,int> myMap;
map<string,int>::iterator myMapIt;
myMap["wo"] = ; //存入方法1
myMap.insert(make_pair("ni",)); //存入方法2
for (myMapIt = myMap.begin();myMapIt!=myMap.end();myMapIt++) //遍历元素
{
cout<<myMapIt->first<<endl;
cout<<myMapIt->second<<endl;
cout<<myMap["ni"];
}
myMap.count("wo"); //返回值为1,即表示存在键值为"wo",不存在返回为0.(注意只有1、0两个值)
myMap.erase("ni"); //删除
myMap.clear() ;
return ;
}

容器vector的使用总结 容器stack(栈)的更多相关文章

  1. C++ 顺序容器(vector,list、deque,stack,queue)

    顺序容器的种类有:vector,list.deque 顺序容器适配器: stack     //先进后出   栈 queue   //先进先出   队列 priority_queue   //也优先管 ...

  2. STL之序列容器vector

    首先来看看vector的模板声明: template <class T, class Alloc = allocator<T>> class vector { //… }; v ...

  3. 容器大小的改变以及容器操作可能使迭代器失效、vector对象的容量变化

    1 改变容器的大小 我们可以使用resize来增加或缩小容器,与往常一样,array不支持resize.如果当前大小大于所要求的大小,容器后面的元素会被删除:如果当前大小小于新大小,会将新元素添加到容 ...

  4. C++线性序列容器<vector>简单总结

    C++线性序列容器<vector>简单总结 vector是一个长度可变的数组,使用的时候无须声明上限,随着元素的增加,Vector的长度会自动增加:Vector类提供额外的方法来增加.删除 ...

  5. [C++]STL容器Vector的内存释放

    直接抛出两句话,说明到底应该如何释放Vector占用的内存. “vector的clear不影响capacity,你应该swap一个空的vector.” <Effective STL>中的“ ...

  6. C++顺序容器vector、deque、list

    1.容器元素类型 C++中大多数数据类型能够作为容器的元素类型.容器元素类型必须满足一下两个条件:支持赋值和复制操作. 所以没有元素是引用类型的容器,同一时候IO对象和auto_ptr也不能作为容器的 ...

  7. STL标准库-容器-vector

    技术在于交流.沟通,本文为博主原创文章转载请注明出处并保持作品的完整性. 向量容器vector是一个动态数组,内存连续,它是动态分配内存,且每次扩张的原来的二倍. 他的结构如下 一 定义 vector ...

  8. 第十篇:顺序容器vector,deque,list的选用规则

    前言 常见的顺序容器主要有三种 - vector,deque,list.它们实现的功能相差不大,那么实际开发中该如何进行选择呢?本文将为你解答这个问题. 分析 由于这三种容器实现的数据结构原型不同(v ...

  9. 顺序容器vector,deque,list的选用规则

    前言 常见的顺序容器主要有三种 - vector,deque,list.它们实现的功能相差不大,那么实际开发中该如何进行选择呢?本文将为你解答这个问题. 分析 由于这三种容器实现的数据结构原型不同(v ...

随机推荐

  1. symfony2路径问题

    1.相对路径 例:在上传文件里面,路径设置为 $path = "upload/"   此时路径指向的是web/upload/; 2.绝对路径 例:$path = "/va ...

  2. Can you find it?(hdu 2141 二分查找)

    Can you find it? Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/10000 K (Java/Others ...

  3. INSERTION_SORT插入排序C++实现

    大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang 以下用C++实现插入排序的升序和降序排序 算法来自<算法导论> #include< ...

  4. 源码编译安装 PHP5.5.0,解决curl_exec访问HTTPS返回502错误的问题(修改PATH路径)

    最近碰到一个奇怪的问题, PHP使用 curl_exec 访问 HTTPS 网页时, 返回502错误, 访问HTTP网页时没有问题,  用   echo   phpinfo() ;  查看, 支持op ...

  5. [PowerShell] Backup Folder and Files Across Network

    ## This Script is used to backup folder/files and delete the old backup files. ## Author: Stefanie # ...

  6. Arcgis api For silverlight 加载高德地图

    原文 http://www.cnblogs.com/thinkaspx/archive/2012/11/13/2767752.html 地图仅供演示,研究使用.如要商用 请联系厂商. public c ...

  7. 《深入了解 Linq to SQL》之对象的标识 —— 麦叔叔呕心呖血之作

    序言 很多朋友都向我提过,希望我写一下关于Linq to SQL 或者 VS 插件方面的文章.尽管市面上有很多 Linq to SQL 的书籍,但是都是介绍怎么用,缺乏深度.关于 VS 插件方面的书籍 ...

  8. 2014.8.4我出的模拟赛【你的名字叫czy是吧】

    你的名字叫czy是吧 (mynameisczy.pas/.c/.cpp) 尽管czy放了那么多只NTR酋长,也没能拦住黄巨大.黄巨大和czy相遇了…… “你的名字叫czy是吧” “……” “我们来单挑 ...

  9. 汉子英文同行 连续英文不折行断行 的问题 兼容FIREFOX浏览器CSS

    #intro {white-space: normal;word-break: break-all;overflow: hidden;} --------------------- 案例2

  10. UESTC_棋盘游戏 CDOJ 578

    最近昀昀学习到了一种新的棋盘游戏,这是一个在一个N×N的格子棋盘上去搞M个棋子的游戏,游戏的规则有下列几条: 棋盘上有且仅有一个出口 开始时没有哪个棋子在出口,而且所有棋子都不相邻(这里的相邻是指上下 ...