暑期集训第三期水的第二篇总结

本文详细介绍了C++中的容器vector,包括其基本功能、初始化、大小调整、元素操作如插入、删除,以及常用的成员函数如resize、empty、push_back等。通过实例展示了如何使用vector进行动态数组操作,帮助读者深入理解C++中的动态数组容器。
摘要由CSDN通过智能技术生成

        今天倒是学到了想着看一看离散化,发现他用了几个我不会的东西,vector,lower—bound,unique然后就去看了看  发现c++的东西是真的好用。

   vector有很多的功能,大致如下

c++中的一种容器相当于一种动态的数组,可以实现很多操作

需要头文件#include<vector>

Vector<int>v1//定义了一个int型的容器v1;

//在这种情况下是不允许用数组来个v1赋值

V1[0]=1这种方式是错的,因为容器内没有给他分配空间

Vector<int>v1(10)//定义了一个int型的容器给他分配来了十个元素的空间,元素默认为0;此时可以使用数组的方式为其赋值;

Vector<int>v1(5,666)定义时指定了五个元素的内存,同时所有元素赋值为666;

定义时可以使用其他容器来初始化自己

vector<int> v1(5, 666);

// 定义时可以使用其他容器来初始化自己

vector<int> v2(v1);       // v1 和 v2 相等

// 也可以使用 返回迭代器 的方式将一个容器的元素全都赋值给自己

vector<int> v1(5, 666);

vector<int> v2(v1.begin(), v1.end());

begin 和 end 返回来的就是一个指针迭代器,所以可以进行加减操作,指向其他元素的位置

vector<int> v1(5, 666);

// 将v1的元素从第三个元素到最后的元素赋值给v2

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

可以使用数组来初始化容器

int Array[5] = {1, 2, 3, 4, 5};

// 将数组元素1,2,3,4给容器赋初值

vector<int> v1 = (Array, Array+3);

size 获取容器的元素个数

v1.size();

capacity 获取容器的大小;

v1.capacity();

begin 获取容器第一个元素的迭代器

vector<int> v1(10, 666);

v1.begin();

end 指向容器最后一个元素的下一个位置的迭代器

vector<int> v1(10, 666);

v1.end();

assign 赋值玩法

第一种玩法 会改变原来vector中的元素内存大小

将v1元素修改为5个,并且赋值888

vector<int> v1(10);

v1.assign(5, 888);   // 打印结果5个888

第二种玩法,使用迭代器赋值

将容器v2的10个1赋值给v1,使得v1和v2相等

vector<int> v1(5);

vector<int> v2(10, 1);

v1.assign(v2.begin(), v2.end());    // 打印结果10个1

第三种玩法,使用指针赋值

将数组的所有元素都赋值给v1

int Array[5] = { 9, 8, 7, 6, 5 };

vector<int> v1;

v1.assign(Array, Array + 4);  // 打印结果9,8,7,6,5

第四种玩法,使用赋值运算符重载

将v1所有元素赋值给v2

vector<int> v1(10, 1);

vector<int> v2;

v2 = v1;  // 打印结果10个1

resize 将容器缩小和变大

一、把容器元素缩小

vector<int> v1(10);

v1.resize(5);    // 缩小长度为5

1

2

3

二、把容器扩大时,并给增加的元素赋值

vector<int> v1(5);

v1.resize(8, 111);   // 扩充v1容器的大小为8,后续新增加的使用111赋值

三、把容器扩大,不给增加的元素赋值

vector<int> v1(5);

v1.resize(15);

empty 判断容器是否为空

为空返回true,为假返回false

vector<int> v1(5);

if (v1.empty() == NULL) {

       cout << "v1为空!" << endl;

}

push_back 尾部添加一个元素

vector<int> v1;

v1.push_back(1);    // 在尾部增加要给1

pop_back 尾部删除一个元素

vector<int> v1(10);

v1.pop_back();       // 在尾部删除一个元素

at 和数组使用方式差不多

给第一个元素赋值1

vector<int> v1(10);

v1.at(0) = 1;

输出容器里的所有元素

cout << "v1的所有元素:";

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

       cout << v1.at(i) << ", ";

}

front 获取容器的第一个元素

vector<int> v1(10);

v1.front();

// 也可以使用他们赋值

v1.front() = 111;    // 给第一个元素赋值111

back 获取容器的最后一个元素

vector<int> v1(10);

v1.back();

// 也可以使用他们赋值

v1.back() = 222;    // 给最后一个元素赋值222

insert 元素的插入

vector<int> v1(10);

// 往第一个元素的位置插入一个5

v1.insert(v1.begin(), 5);

// 从第三个元素位置开始插入5个222

v1.insert(v1.begin() + 2, 5, 222);

vector<int> v2(3, 111);

// 从第二个元素开始插入v2的所有值

v1.insert(v1.begin() + 1, v2.begin(), v2.end());

erase 与 clear 元素删除

vector<int> v1(10);

// 删除第一个元素

v1.erase(v1.begin());

// 删除第一个到第三个元素

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

// 删除全部元素

v1.clear();

————————————————

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值