将具有字符串成员的对象添加到向量
class A
{
public:
string name;
float length;
float weight;
bool isEnabled;
};
当我对此类的向量执行 push_back()
时,它第一次起作用,但在后续的 push_back()
调用中不起作用。难道是因为字符串成员的原因?如果是这样,为什么?
class A
{
public:
string name;
float length;
float weight;
bool isEnabled;
};
When I'm doing push_back()
on the vector of this class, it works for the first time, but doesn't on the subsequent push_back()
calls. Could it be because of the string member? If so, why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我尝试了你的代码。
但无法复制您的错误。
此代码推回四次。
输出 :
I tried out your code.
But could not replicate your error.
This code pushes back four times.
Output :
为什么
字符串
与它有任何关系?您完成了
#include
吗?您没有提到您的
类
是否有复制构造函数。它是这样的:
默认情况下,c++ 将复制所有公共成员,但您需要有一个复制构造函数才能使用 STL 容器和
push_back()
Why would the
string
have anything to do with it ?Have you done
#include <string>
?You haven't mentioned whether your
class
has a copy constructor.It goes something like this:
By default, c++ will copy all public members, but you need to have a copy constructor in order to use STL containers and
push_back()