Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.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++。假设我编写以下代码: struct node { int sum; int min; }; vector<node> arrnode; for(int j=0;j<n;j++) { node n1; n1.sum=0; n1.min=0; arrnode.push_back(n1); } struct节点 { 整数和; int-min; }; 向量节点; 对于(int j=0;j_C++_Copy Constructor - Fatal编程技术网

使用复制构造函数创建的对象的生命周期 < >我使用C++。假设我编写以下代码: struct node { int sum; int min; }; vector<node> arrnode; for(int j=0;j<n;j++) { node n1; n1.sum=0; n1.min=0; arrnode.push_back(n1); } struct节点 { 整数和; int-min; }; 向量节点; 对于(int j=0;j

使用复制构造函数创建的对象的生命周期 < >我使用C++。假设我编写以下代码: struct node { int sum; int min; }; vector<node> arrnode; for(int j=0;j<n;j++) { node n1; n1.sum=0; n1.min=0; arrnode.push_back(n1); } struct节点 { 整数和; int-min; }; 向量节点; 对于(int j=0;j,c++,copy-constructor,C++,Copy Constructor,只有当arrnode被销毁时,它才会被销毁吗 是的。这正是std::vector(以及标准库中的所有其他容器)的要点,当容器本身被破坏时,它会破坏它所包含的元素 只有当arrnode被销毁时,它才会被销毁吗 是。std::vector实现,当arrnode超出范围时,arrnode的所有元素都将被销毁 如果您只想用相同的值初始化arrnode,只需通过以下方式构造它: vector<node> arrnode{n, {0,0}}; 向量arrnode{n,{0,0}; 如果要使用

只有当arrnode被销毁时,它才会被销毁吗

是的。这正是
std::vector
(以及标准库中的所有其他容器)的要点,当容器本身被破坏时,它会破坏它所包含的元素

只有当arrnode被销毁时,它才会被销毁吗

是。
std::vector
实现,当arrnode超出范围时,arrnode的所有元素都将被销毁

如果您只想用相同的值初始化
arrnode
,只需通过以下方式构造它:

vector<node> arrnode{n, {0,0}};
向量arrnode{n,{0,0}; 如果要使用不同的值初始化:

for(int j=0;j<n;j++)
{
   arrnode.push_back({j,j});
}

for(int j=0;jin碰巧,您的整个声明+循环可以写在一条语句中:
vector arrnode(n,{0,0});
(另外,它不是“destructor”,而是“destructor”。)