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. Java 一个字符串在另外一个字符串出现次数

    统计一个字符串在另外一个字符串出现次数 代码如下: package me.chunsheng.javatest; import java.util.regex.Matcher; import java ...

  2. java多线程什么时候释放锁—wait()、notify()

    由于等待一个锁定线程只有在获得这把锁之后,才能恢复运行,所以让持有锁的线程在不需要锁的时候及时释放锁是很重要的.在以下情况下,持有锁的线程会释放锁:    1. 执行完同步代码块.    2. 在执行 ...

  3. 循环与range

    Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,看例子: names = ['Michael', 'Bob', 'Tracy'] for name ...

  4. Python即时网络爬虫项目: 内容提取器的定义(Python2.7版本)

    1. 项目背景 在Python即时网络爬虫项目启动说明中我们讨论一个数字:程序员浪费在调测内容提取规则上的时间太多了(见上图),从而我们发起了这个项目,把程序员从繁琐的调测规则中解放出来,投入到更高端 ...

  5. nginx和apache的优缺点比较

    简单的说apache httpd和nginx都是web服务器,但两者适应的场景不同,也就是两者专注于解决不同的问题.apache httpd:稳定.对动态请求处理强,但同时高并发时性能较弱,耗费资源多 ...

  6. opencv for python

    opencv显示图像: # -*- coding: UTF-8 -*- import numpy as np import cv2 from matplotlib import pyplot as p ...

  7. js刷新页面

    reload 方法,该方法强迫浏览器刷新当前页面. 语法:location.reload([bForceGet]) 参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页 ...

  8. Qt之图标切分与合并(关键是使用QPixmap的copy函数来拷贝整张图片的某个区域)

    有些时候会将多张有相同功能的图片绘制成一张,不管是使用或者绘制上都会方便很多.对美工与开发者来说也都是一件省事.省力.更省心的方式.二全其美,又何乐而不为呢... 例如:QQ等级           ...

  9. 在一个exe文件中查找指定内容,找到则返回起始位置, 否则返回0

    //在一个exe文件中查找指定内容,找到则返回起始位置, 否则返回0//如果某字符串, 直接传入字符串进来//如果要查找16进制,则用如下格式传参进来: #$1A#$2A#$3A function F ...

  10. java.net.SocketTimeoutException: Read timed out

    If you get java.net.SocketTimeoutException: Read timed out exception Try setting own timeout value w ...