Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.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++ 向量不能正确地接受新元素_C++ - Fatal编程技术网

C++ 向量不能正确地接受新元素

C++ 向量不能正确地接受新元素,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

我在下面的代码中看到一些奇怪的行为。我的控制台正在打印

0lo1lo

实际上我在期待

0Hel1lo

Node.cpp

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的使用方向它是一个控制台界面,其中每个菜单都包含一系列选项,每个选项都可以包含其他选项,等等。根目录作为起点。我愿意接受任何关于替代数据结构的建议。