美文网首页
C++ STL 数组 Vector&deque

C++ STL 数组 Vector&deque

作者: 贝克街的猫大哥呀 | 来源:发表于2017-08-30 15:56 被阅读0次

相当于JAVA中的数组,提供了一系列的方法,可以方便的操作这个数组

首先引入

#include<vector>

下面是一个初始化的例子

void printVector(vector&v){

//通过数组的方式遍历

for (int i = 0; i < v.size(); i++){

cout << v[i] << endl;

}

}

void main() {

vector<int> v1;

v1.push_back(20);

v1.push_back(40);

printVector(v1);

system("pause");

}

push_back就相当于java中的add,往后面压数据,所以打印出来的顺序是,20,40

直接复制与部份复制

直接复制

vector<int> v2 = v1;

部分复制

vector<int> v3(v1.begin(),v1.begin()+2);

有些常见的方法,如访问头部,访问尾部

void main(){

vector<int> v1;

v1.push_back(20);

v1.push_back(40);

v1.push_back(15);

v1.push_back(7);

//访问头部

v1.front() = 11;

//访问尾部

v1.back() = 90;

printVector(v1);

system("pause");

}

最终输入为 11,40,15,90,也就是说,会直接替换原来头与尾的值

如果直接写 v1.back(); 就是访问最后一位的数据

删除结尾元素:

v1.pop_back();

效果就是直接删除最后一位

数组内部的一些运算,也很符合逻辑,如

v1[2] = v1[2] + 10;

就是将数组内部的3号元素,增加10

//删除指定位置

vector<int>::iterator it = v1.begin();

it += 3;

v1.erase(it);

这里就删除了第4号元素

v1.erase(v1.begin(), v1.begin() + 3);

这里表示删除了0-4这个区间

//插入

v1.insert(v1.begin() + 2, 100);

v1.insert(v1.end() - 1, 200);

表示3号元素位置,倒数第2号元素位置,分别插入元素

vector是单向的!!!现在讲一个双向队列deque

还是先引用

#include<deque>

用法与vector也几乎一样,如下

deque<int> d1;

//添加到尾部

d1.push_back(2);

d1.push_back(10);

//添加到头部

d1.push_front(-90);

d1.push_front(-30);

也就是说,可以从头,和尾加入数据,对应的,也能从两个方向弹出

d1.pop_back(); //从尾部弹出

d1.pop_front(); //从头部弹出

而vector则只有pop_back方法

查找:

//查找第一个-90元素索引位置,无需遍历

deque<int>::iterator it = find(d1.begin(),d1.end(),-90);

if (it != d1.end())

{

int idx = distance(d1.begin(), it);

cout << "索引位置为:" << idx << endl;

}

int idx = distance(d1.begin(), it);  这个方法是查找当前 it 离初始0 的距离!

相关文章

  • C++ STL 数组 Vector&deque

    相当于JAVA中的数组,提供了一系列的方法,可以方便的操作这个数组 首先引入 #include 下...

  • 读书笔记17.06.03

    C++ STL:Listlist是C++标准模版库(STL,Standard Template Library)中...

  • C++ STL(2)

    C++ STL(2) from my csdn blog 顺序性容器 向量 vector动态数组,创建后会在内存中...

  • [C++] STL 容器

    参考:[C++] STL 容器 (一) - 基本介紹[C++] STL 容器 (二) - Iterator 部分示例:

  • [GeekBand][C++ STL与泛型编程]第八周笔记

    容器deque C++ STL容器deque和vector很类似,也是采用动态数组来管理元素。使用deque之前需...

  • 宏的妙用

    [TOC] 变长数组 ​ 严格说来,变长数组的实现在c++中并不是一件麻烦的事情。Stl中的vector本身就...

  • 博览网:STL与泛型编程第三周笔记

    1.容器deque C++ STL容器deque和vector很类似,也是采用动态数组来管理元素。 使用deque...

  • 16/4 标准模板库

    c++库中90%是stl,stl的绝大多数是模板 迭代器 1为普通指针调用,2为迭代器遍历数组vector内容 s...

  • 标准模板库-vector

    标准模板库-vector 1. vector简介 vector为C++的STL中的模板数组容器。在使用时需要包含#...

  • C++ STL 学习笔记

    C++ STL 学习笔记

网友评论

      本文标题:C++ STL 数组 Vector&deque

      本文链接:https://www.haomeiwen.com/subject/pomtjxtx.html