vector使用过程出现的问题记录

在使用vector过程中遇到一些奇怪的问题,例如输入时未自动跳出,通过改变A.size()和A[i].size()的值解决了;vector下标越界问题,需确保下标不超过size();尝试解决leetcode905题时误用冒泡算法;初次使用switch语句时理解错误,导致不应执行的代码被执行。

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

1不知道为毛的错误

vector<vector<int>> A;
	int temp;
	A.resize(4);
	for ( auto &vec :A)
	{
		vec.resize(4);
		
	}
	
	for (int i = 0; i < A.size(); i++)
	{
		for (int j = 0; j < A[i].size(); j++)
		{
			//cout << A[i].size();
			cin >> temp;
			//A[i][j] = temp;
			A[i].push_back(temp);
		}
	}

在电脑上运行如上碰到问题:一直输入没有自动跳出,当把A.size(),A[i].size()换成4之后可以运行。
单独输出A[i].size(),和A.size()也是4,很奇怪,做个记号。

换成A[i][j] = temp赋值的时候问题消失???为毛

2.vector subscript out of range问题
出现问题的代码行:

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

		reverse(A[i].begin(), A[i].end());
		for (int j = 0; j <= A[i].size(); j++) {

			if (A[i][j] == 1)
			{
				A[i][j] = 0;
			}
			else {
				A[i][j] = 1;
			}
		}
	}

问题:使用下标可能出现的越界。上面判断条件应该是i < A.size()和

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值