C/C++ 模板类vector的初始化、插入、删除操作

1. 模板类vector类似string类,可以在运行阶段设置vector对象的长度,可以在不同位置插入新数据,在这里我们看下vector常用的几种用法

2. 我们首先定义一个vector数组,

不指定数组长度,数组则为空

指定长度,不指定默认值,则值被赋予初始化的值

指定长度,指定默认值

指定长度,每个数组都指定不同的默认值

源码如下:

// Len_vector.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <vector>
using namespace std;

// 根据传入的vector,输出vector的长度,和每个vector的值
void PrintVector(vector<int> param)
{
	int size = param.size();
	printf("\n\nsize:%d \t",size);
	for (int i = 0; i < size; i++)
	{
		printf("pos[%d].%d \t", i, param[i]);
	}
}
int main()
{
	// 初始化vector数组,不存入任何值
	vector<int> v1;
	PrintVector(v1);

	// 初始化vector数组,存入的值不指定,系统会默认为初始化0
	vector<int> v2(2);
	PrintVector(v2);

	// 初始化vector数组,存入两个值,初始化为10
	vector<int> v3(2, 10);
	PrintVector(v3);

	vector<int> v4(2, 10);
	v4[0] = 110;
	v4[1] = 119;
	PrintVector(v4);
}

执行结果:

2. 在首、中、尾插入不同的值

首部插入值的时候我们使用begin()

在末尾插入值的时候使用end()

在中间插入值的时候,使用begin()+插入的位置

每次插入值后,数组的长度会自动增长

代码如下:

// Len_vector.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <vector>
using namespace std;

// 根据传入的vector,输出vector的长度,和每个vector的值
void PrintVector(vector<int> param)
{
	int size = param.size();
	printf("\n\nsize:%d \t",size);
	for (int i = 0; i < size; i++)
	{
		printf("pos[%d].%d \t", i, param[i]);
	}
}
int main()
{
	// 定义一个vector数组,当前容量是4个int,初始值都为10
	vector<int> vi(2, 10);
	PrintVector(vi);
	
	// 在数组中间第[3]位插入数组888
	vi.insert(vi.begin() + 1, 888);
	PrintVector(vi);
	
	// 在数组头部添加一个位置, 存入101
	vi.insert(vi.begin(), 101);
	PrintVector(vi);
	
	// 在数组头部添加一个位置, 存入301
	vi.insert(vi.end(), 301);
	PrintVector(vi);
}

执行结果:

3. 删除不同位置的值

删除单个值,使用erase,参数使用begin()+指定的位置

删除多个值有两种方式  erase()中指定起始位置,和结束位置,删除的时候不包含结束位置

                                       clear()删除整个数组

源码如下:

// Len_vector.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <vector>
using namespace std;

// 根据传入的vector,输出vector的长度,和每个vector的值
void PrintVector(vector<int> param)
{
	int size = param.size();
	printf("\n\nsize:%d \t",size);
	for (int i = 0; i < size; i++)
	{
		printf("pos[%d].%d \t", i, param[i]);
	}
}
int main()
{
	// 定义一个vector数组,当前容量是4个int,初始值都为10
	vector<int> vi(8, 10);
	vi[0] = 1000;
	vi[1] = 1001;
	vi[2] = 1002;
	vi[3] = 1003;
	vi[4] = 1004;
	vi[5] = 1005;
	vi[6] = 1006;
	vi[7] = 1007;
	PrintVector(vi);

	// 删除【vi[1],vi[4])的值	
	vi.erase(vi.begin() + 1, vi.begin() + 4);
	PrintVector(vi);


	// 删除vi[i]的值
	vi.erase(vi.begin() + 1);
	PrintVector(vi);

	// 删除vi头的值
	vi.erase(vi.begin());
	PrintVector(vi);

	// 删除vi尾的值
	vi.erase(vi.end()-1);
	PrintVector(vi);

	// 清空vi的值
	vi.clear();
	PrintVector(vi);
}

执行结果:

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
类模板是C++中一种通用的编程技术,它允许我们定义一个模板类,在这个类中可以使用任意类型的数据。因此,我们可以使用类模板来实现向量的运算。 首先,我们可以定义一个名为Vector的类模板,其中包含私有数据成员和公共成员函数。私有数据成员可以包括向量的元素以及向量的大小。公共成员函数则可以包括向量的初始化、复制、加法、减法、点乘和输出等操作。 在类模板中,我们可以使用模板参数来表示向量的元素类型。例如,使用typename T来表示元素类型。这样,在模板类中,我们可以使用T来声明向量的元素数组。 接下来,我们可以实现类模板中的各个成员函数。例如,我们可以使用构造函数来初始化向量的大小,并使用析构函数来释放内存。我们还可以使用复制构造函数和赋值运算符重载函数来实现向量的复制操作。 在加法、减法和点乘运算中,我们可以使用循环语句遍历向量的元素,并进行相应的运算。最后,我们可以使用输出函数来显示向量的元素。 使用类模板实现向量运算的好处是,我们可以在运行时根据需要实例化类模板,并使用不同类型的数据来进行运算。这样,我们可以更加灵活地处理不同类型的向量操作。 综上所述,我们可以通过实现一个类模板来实现向量的运算。这种方法可以使我们更加灵活地处理不同类型的向量,并实现各种向量运算的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WendyWJGu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值