网站开发前端与后端源代码,新网站seo,域名购买 万网,0453牡丹江信息网免费发布信息文章目录 前言#x1f308; Ⅰ vector 类对象的定义1. 定义格式2. vector 对象的构造 #x1f308; Ⅱ vector 类对象的容量#x1f308; Ⅲ vector 类对象的访问#x1f308; Ⅳ vector 类对象的修改#x1f308; Ⅴ vector 定义二维数组 前言
vector 介绍
vector 是一… 文章目录 前言 Ⅰ vector 类对象的定义1. 定义格式2. vector 对象的构造 Ⅱ vector 类对象的容量 Ⅲ vector 类对象的访问 Ⅳ vector 类对象的修改 Ⅴ vector 定义二维数组 前言
vector 介绍
vector 是一个可变大小数组的序列容器。和顺序表一样vector 也采用连续的空间存储不同类型的元素。vector 使用类模板定义顺序表内的元素类型根据 vector 指定的元素决定。
vector 引入
使用 vector 之前要先添加头文件 #include vector 并且还要展开 std 空间域内的 vector 类 using std::vector; Ⅰ vector 类对象的定义
1. 定义格式
类模板生成的 vector 顺序表中的元素类型为指定的元素类型。 如: typename 为 int 则 vector 顺序表内的元素类型也为 int其余同理。 本篇文章主要以 int 类型举例。
vectortypename name;2. vector 对象的构造
构造函数功能说明vector()无参构造vectorsize_type n, const value_type val value_type()构造并初始化 n 个值为 val 的元素val 的缺省值为 0vector (const vector x)使用已有的 vector 对象拷贝构造新的 vector 对象vector (InputIterator first, InputIterator last)使用迭代器进行构造 Ⅱ vector 类对象的容量
函数说明
函数名称功能说明size()获取顺序表的有效元素个数empty()判断当前顺序表是否为空capacity()返回当前顺序表能够容纳的最多有效数据个数reserve(n)为指定顺序表预留 n 个元素的空间实际开辟的空间只会 nresize(n, val)将当前顺序表的有效元素改为 n 个如果 n 大于当前有效数据个数则用 val 填充
void test2()
{vectorint v{ 1,2,3,4,5,6,7,8,9,10 };cout size: v.size() endl; // 获取当前顺序表的有效元素个数cout empty: v.empty() endl; // 判断当前顺序表是否为空cout capacity: v.capacity() endl; // 判断当前可容纳的最多有效元素个数v.reserve(100); cout reserve: v.capacity() endl; // 预留 100 个元素的空间v.resize(15,3); cout resize: v.size() endl; // 将有效元素个数改成 15 个超出部分用 3 填充for (auto val : v)cout val ;cout endl;
}Ⅲ vector 类对象的访问
1. operator[] 访问
对方括号 [ ] 进行了重载使得 vector 对象能够像普通数组那样通过 下标 [ ] 进行访问。 2. 迭代器 iterator 访问
当前要使用的 iterator 属于 vector 类域需要 vectorint::iterator 指定使用的是 vector 类域内的迭代器。
iterator 的使用接口说明begin() end()begin() 获取数组第一个元素的地址end() 获取最后一个有效元素的下一个位置rbegin() rend()rbegin() 获取最后一个有效数据的位置rend() 获取第一个数据的前一个位置 3. 获取首尾元素
函数名称功能说明front()获取顺序表的第一个有效元素back()获取顺序表的最后一个有效元素 Ⅳ vector 类对象的修改
函数名称功能说明push_back(val)将 val 尾插进顺序表pop_back()对顺序表执行尾删insert(iterator position, const value_type val)向迭代器指向的 pos 位置处插入一个值 val原 pos 及之后的元素往后挪insert(iterator position, InputIterator first, InputIterator last)在指定位置处插入一段迭代器区间内的值swap(vector x)交换两个 vector 对象内的数据clear()清除顺序表内的有效数据
void test4()
{vectorint v1{ 1,2,3,4,5 };vectorint v2{ 5,4,3,2,1 };v1.push_back(1); // 将 1 尾插进顺序表v1.pop_back(); // 对顺序表执行伪删v1.insert(v1.begin() 3, 30); // 在下标 3 处插入 30v1.swap(v2); // 交换 v1 和 v2 内的数据// 将 v2 的 0 ~ 2 处的值插入 v1 的 0 号位置v1.insert(v1.begin(), v2.begin(), v2.begin() 2);
}Ⅴ vector 定义二维数组
vectorvectorint array;vector 是一个会根据指定类型生成具体类的类模板 号里的可以是任意数据类型vectorvector array 表示 array 的每个元素都是一个 vector 一维数组类型的数据。一堆的一维数组组在一起就构成了二维数组。