Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么';这个向量赋值不行吗?_C++_Stdvector_Assignment Operator_Copy Assignment - Fatal编程技术网

C++ 为什么';这个向量赋值不行吗?

C++ 为什么';这个向量赋值不行吗?,c++,stdvector,assignment-operator,copy-assignment,C++,Stdvector,Assignment Operator,Copy Assignment,类似问题: #包括 #包括 使用名称空间std; int main(){ 向量vvi; vvi.resize(1); vvi[0]。保留(1); vvi[0][0]=1; 向量vi=vvi[0]; 库特 您需要调整大小,而不是保留 访问元素i,其中i>=v.size()是未定义的行为。reserve影响容量,而不是大小 如果我要进入实际方面,我可能会猜测,您可能会通过赋值vvi[0][0]=1;(至少在发布模式下)逃脱。但主要的实际问题在于这里 vector<int> v

类似问题:


#包括
#包括
使用名称空间std;
int main(){
向量vvi;
vvi.resize(1);
vvi[0]。保留(1);
vvi[0][0]=1;
向量vi=vvi[0];
库特
您需要
调整大小
,而不是
保留

访问元素
i
,其中
i>=v.size()
是未定义的行为。
reserve
影响
容量
,而不是
大小

如果我要进入实际方面,我可能会猜测,您可能会通过赋值
vvi[0][0]=1;
(至少在发布模式下)逃脱。但主要的实际问题在于这里

vector<int> vi = vvi[0];
但这都是猜测。你问题的正确答案是

vvi[0].reserve(1);
vvi[0][0] = 1;
已具有未定义的行为,无需进一步考虑

您需要
调整大小
,而不是
保留

访问元素
i
,其中
i>=v.size()
是未定义的行为。
reserve
影响
容量
,而不是
大小

如果我要进入实际方面,我可能会猜测,您可能会通过赋值
vvi[0][0]=1;
(至少在发布模式下)逃脱。但主要的实际问题在于这里

vector<int> vi = vvi[0];
但这都是猜测。你问题的正确答案是

vvi[0].reserve(1);
vvi[0][0] = 1;

已具有未定义的行为,无需进一步考虑。

此外,
vii[0][0]
中的向量对象“有效”,因为
vii[0]
确实确保数组在偏移量
0
处有一个元素,但复制构造后不需要容量。@bitmask:我编辑的目的是为了与您的评论同时说明这一点!:)对不起,我忘记了T;另外,
vii[0][0]
因为向量对象在
vii[0]中“起作用”
确实确保数组在偏移量
0
处有一个元素,但复制构造后不需要容量。@bitmask:我正在编辑,以便与您的注释一起简单地说明这一点!:)抱歉,我忘了T;
vvi[0].reserve(1);
vvi[0][0] = 1;