C++ 向量不能正确地接受新元素
我在下面的代码中看到一些奇怪的行为。我的控制台正在打印 0lo1lo 实际上我在期待 0Hel1lo Node.cppC++ 向量不能正确地接受新元素,c++,C++,我在下面的代码中看到一些奇怪的行为。我的控制台正在打印 0lo1lo 实际上我在期待 0Hel1lo Node.cpp std::vector<Node> Node::getChildren() { return children; } void Node::setChildren(std::vector<Node> childrenNodes) { children = childrenNodes; } void Node::addChild(Nod
std::vector<Node> Node::getChildren() {
return children;
}
void Node::setChildren(std::vector<Node> childrenNodes) {
children = childrenNodes;
}
void Node::addChild(Node child) {
children.push_back(child);
std::cout << child.getTitle();
}
std::string Node::getTitle() {
return title;
}
std::vector Node::getChildren(){
返回儿童;
}
void Node::setChildren(std::vector childrenNodes){
children=childrenNodes;
}
void Node::addChild(节点子节点){
儿童。推回(儿童);
std::cout您正在使用全局变量存储实例数据:
std::string title;
这意味着在你的程序中只有一个标题
,如果你改变了它,它会为每个访问它的类、函数等而改变
将其设置为节点的非静态成员变量
,您的问题就会消失。您正在使用全局变量存储实例数据:
std::string title;
这意味着在你的程序中只有一个标题
,如果你改变了它,它会为每个访问它的类、函数等而改变
将其设置为节点的非静态成员变量,您的问题就会消失。我现在接受您的答案,但它告诉我等待12分钟,我想这是一个简单的问题:PI现在接受您的答案,但它告诉我等待12分钟,我想这是一个简单的问题:您听说过const和references吗我们有更好的性能。还有默认值和初始化列表。通常,私有变量,尤其是对整个cpp可用的变量在标题中声明。此外,这里有太多的复制操作,您真的应该查看ret by ref和ret by const ref。我真的不确定使用单独的每个容器有一个父级和多个节点,但这似乎不太实际。它是一个控制台界面,其中每个菜单都包含一系列选项,每个选项都可以包含其他选项,等等。根作为起点。我愿意接受任何关于替代数据结构的建议。你听说过const和references吗?make代码有更好的性能。还有默认值和初始化列表。通常情况下,私有变量,尤其是对整个cpp可用的变量在标题中声明。此外,这里有太多的复制操作,您真的应该查看ret by ref和ret by const ref。我不确定hav的使用方向它是一个控制台界面,其中每个菜单都包含一系列选项,每个选项都可以包含其他选项,等等。根目录作为起点。我愿意接受任何关于替代数据结构的建议。