vector动态数组的基本操作
程序员文章站
2022-03-01 23:18:45
...
目录
Vector动态数组的操作
在数组中插入元素
代码示例
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> Darray{ 1,2,3,4,5 };
Darray.push_back(6); // 在数组结尾插入新元素
Darray.insert(Darray.begin(), 3, 5); // 在特定位置插入5,5,53个重复的元素
int Array[] = { 7,8,9 };
Darray.insert(Darray.end() - 1, Array, Array + sizeof(Array) / sizeof(int));
// 在倒数第二个位置插入数组
}
运行结果
输出开始和结尾的元素
代码示例
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> Darray{ 1,2,3,4,5 };
Darray.push_back(6); // 在数组结尾插入新元素
Darray.insert(Darray.begin(), 3, 5); // 在特定位置插入5,5,53个重复的元素
int Array[] = { 7,8,9 };
Darray.insert(Darray.end() - 1, Array, Array + sizeof(Array) / sizeof(int));
// 在倒数第二个位置插入数组
cout << Darray.back() << endl; // 输出最后的元素
cout << Darray.front() << endl; // 输出最开始的元素
}
运行结果
在数组中删除元素
代码示例
#include <iostream>
#include <vector>
using namespace std;
int main()
{
// 插入
vector<int> Darray{ 1,2,3,4,5 };
Darray.push_back(6); // 在数组结尾插入新元素
Darray.insert(Darray.begin(), 3, 5); // 在特定位置插入5,5,53个重复的元素
int Array[] = { 7,8,9 };
Darray.insert(Darray.end() - 1, Array, Array + sizeof(Array) / sizeof(int));
// 在倒数第二个位置插入数组
// 输出数组两端的元素
cout << Darray.back() << endl; // 输出最后的元素
cout << Darray.front() << endl; // 输出最开始的元素
// 擦除
Darray.pop_back(); // 删除数组最后的元素
Darray.erase(Darray.begin() + 2); // 删除特定的元素
Darray.erase(Darray.begin(), Darray.end() - 2); // 成段的擦除数组中的元素
}
运行结果
清空数组&数组元素互换&判断数组是否为空
程序示例
#include <iostream>
#include <vector>
using namespace std;
int main()
{
// 插入
vector<int> Darray{ 1,2,3,4,5 };
Darray.push_back(6); // 在数组结尾插入新元素
Darray.insert(Darray.begin(), 3, 5); // 在特定位置插入5,5,53个重复的元素
int Array[] = { 7,8,9 };
Darray.insert(Darray.end() - 1, Array, Array + sizeof(Array) / sizeof(int));
// 在倒数第二个位置插入数组
// 输出数组两端的元素
cout << Darray.back() << endl; // 输出最后的元素
cout << Darray.front() << endl; // 输出最开始的元素
// 擦除
Darray.pop_back(); // 删除数组最后的元素
Darray.erase(Darray.begin() + 2); // 删除特定的元素
Darray.erase(Darray.begin(), Darray.end() - 2); // 成段的擦除数组中的元素
vector<int> Darray2 = { 10,9,8,7,6,5 };
Darray2.swap(Darray);
Darray.clear(); // 清空数组,注意不是全部置0
bool is_empty = Darray.empty(); // 如果数组为空,返回true,否则,返回false
}
运行结果
小练习
题目要求
定义一个 int 类型的 vector 动态数组,将以下元素:1, 4, 3, 7, 9, 3, 6, 8, 3, 5, 2, 3, 7 插入到动态数组中。之后,使用 for 循环删除动态数组中的值为 3 的元素,并将结果输出出来。
代码示例
// 小作业.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> varray{ 0 };
vector<int> SwapArray{ 0 };
int iarray[] = { 1, 4, 3, 7, 9, 3, 6, 8, 3, 5, 2, 3, 7 };
varray.clear();
varray.insert(varray.begin(), iarray, iarray + sizeof(iarray) / sizeof(int));
vector<int>::iterator ArrayIterator;
// 声明类一个迭代器,迭代器是vector类的成员模板变量,就相当于一个指针
SwapArray.clear();
for (ArrayIterator = varray.begin(); ArrayIterator != varray.end(); ArrayIterator++)
{
if (*ArrayIterator != 3)
{
SwapArray.push_back(*ArrayIterator);
}
}
varray.swap(SwapArray);
for (ArrayIterator = varray.begin(); ArrayIterator != varray.end(); ArrayIterator++)
{
cout << *ArrayIterator << " ";
}
cout << endl;
}
切记:当你向数组内删除或插入元素时,数组中元素的索引也在变,因此当改变数组后,不可以在用原来的索引去索引相应的元素。
上一篇: Vector的几个基本操作
下一篇: vector的基本操作