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
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
C++标准不支持您的观点
#4
要重载operator =()操作符,然后在=()中交换两个vectgor
#5
我用你代码在我电脑上运行了一下,是对的啊,两个的size都是2
#6
问题抽象有问题,这个程序可以运行。
#7
好的,谢谢大家,问题比较复杂,不好描述。结帖。