C++中结构体成员有vector,如何让结构体之间进行相互赋值?求解

时间:2022-02-19 04:19:51
结构体成员含有容器类vector,如何让结构体之间进行相互赋值?
struct flit
{vector<int> data;
};

int main()
{
   flit a,b;
   a.data.push_back(1);
   a.data.push_back(2);
    b = a;(?)
}
发现b中的data成员size()为0,b = a估计直接进行地址的赋值。

7 个解决方案

#1


写法没错,估计是“发现b中的data成员size()为0”这里发现错了

#2


b.data.size()肯定等于0的,因为b = a仅仅把a.data的地址赋值给了b.data。

#3


引用 2 楼 bruce421116 的回复:
b.data.size()肯定等于0的,因为b = a仅仅把a.data的地址赋值给了b.data。

C++标准不支持您的观点

#4


要重载operator =()操作符,然后在=()中交换两个vectgor

#5


我用你代码在我电脑上运行了一下,是对的啊,两个的size都是2

#6


问题抽象有问题,这个程序可以运行。

#7


好的,谢谢大家,问题比较复杂,不好描述。结帖。

#1


写法没错,估计是“发现b中的data成员size()为0”这里发现错了

#2


b.data.size()肯定等于0的,因为b = a仅仅把a.data的地址赋值给了b.data。

#3


引用 2 楼 bruce421116 的回复:
b.data.size()肯定等于0的,因为b = a仅仅把a.data的地址赋值给了b.data。

C++标准不支持您的观点

#4


要重载operator =()操作符,然后在=()中交换两个vectgor

#5


我用你代码在我电脑上运行了一下,是对的啊,两个的size都是2

#6


问题抽象有问题,这个程序可以运行。

#7


好的,谢谢大家,问题比较复杂,不好描述。结帖。