一维二维vector数组的初始化操作

本文详细介绍了C++中一维数组和二维数组的使用方法,包括push_back、一次性输入、填充、fill算法、拷贝构造及从一维数组转换。通过test1和test2函数展示了各种操作的实践应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

熟练掌握,非常重要

一维数组

void printVector(vector<int> v) {

	for (int ii = 0; ii < v.size(); ii++) {
		if (ii != 0) cout << " ";
		cout << v[ii];
	}
	cout <<endl;
}

void test1() {
	
	// 方法一,逐个字符压入
	vector<int> v1;
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(3);

	// 方法二,一次性传入
	vector<int> v2;
	v2 = { 1,2,3,4 };

	// 方法三,填充n个数值
	vector<int>  v3(5, 0);

	// 方法四,fill算法填充
	vector<int>  v4(6);  //vector<int> v(n); v的大小为n vector<int> v[n]; n个vector数组
	fill(v4.begin(), v4.end(), 0);

	// 方法五,拷贝构造
	vector<int>  v5(v4);

	// 方法六,拷贝一维数组
	int arr[5] = { 1,4,3,2,5 };	
	vector<int>  v6(begin(arr), end(arr));   // 注意不是vector<int>  v(arr[0], arr[4]);

	printVector(v1);
	printVector(v2);
	printVector(v3);
	printVector(v4);
	printVector(v5);
	printVector(v6);
}
int main() {
	test1();
}

二维数组


void printVector2d(vector < vector<int>> v2d) {

	for (int ii = 0; ii < v2d.size(); ii++) {
		for (int jj = 0; jj < v2d[ii].size(); jj++) {
			if (jj != 0) cout << " ";
			cout << v2d[ii][jj];
		}
		cout << endl;
	}
	cout << endl;
}

void test2() {

	// 嵌套vector
	// 方法一,逐个压入		
	vector<int> v1d = { 1,2,3 };
	vector<vector<int>> v2d_01;
	v2d_01.push_back(v1d);
	v2d_01.push_back(v1d);

	// 方法二,一次性传入
	vector<vector<int>> v2d_02 = { {0,0,0},{1,2,3} };

	// 方法三,填充n个vector
	vector<vector<int>> v2d_03(3, v1d);
	
	// 方法四 ,fill算法填充
	vector<vector<int>>  v2d_04(2);
	fill(v2d_04.begin(), v2d_04.end(), v1d);

	// 方法五,拷贝构造
	vector<vector<int>> v2d_05(v2d_03);
	
	// 方法六 ,拷贝二维数组行不通
	int arr2d[3][4] = { {5,12,3,4},{1,6,9,8},{7,10,11,2} };
	//vector<vector<int>> v2d_06(begin(arr2d[0]), end(arr2d[2]));


	// vector数组
	vector<int> v2d[2];
	v2d[0] = v1d;
	v2d[1] = v1d;


	printVector2d(v2d_01);
	printVector2d(v2d_02);
	printVector2d(v2d_03);
	printVector2d(v2d_04);
	printVector2d(v2d_05);
	//printVector2d(v2d_06);

}
int main() {
	test2();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值