0
我在下面的代碼中看到一些奇怪的行爲。我的控制檯打印向量不能正確接受新元素
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;
}
從主要功能
Node root = Node("root");
root.addChild(Node("Hel"));
root.addChild(Node("lo"));
std::cout << "\n";
std::vector<Node> children = root.getChildren();
for (int i = 0; i < children.size(); i++) {
Node menuItem = children[i];
std::cout << i;
std::cout << menuItem.getTitle();
}
std::cout << "\n";
沒有任何人有一個想法,爲什麼的getChildren()似乎越來越沒有被準確地列出我插入的第一個元素的載體?
你聽說過const和引用 - 使代碼有更好的性能。還有默認值和初始化列表。 –
通常,私有變量,特別是可用於整個cpp的變量在頭中聲明。還有這麼多的複製在這裏,你真的應該看看由ref ref和ret由const ref。而且我不確定你要在每個容器中單獨放置一個父節點還是許多節點,但它看起來並不太實際。 – George
它的一個控制檯界面,其中每個菜單由一系列選項組成,每個選項都可以包含其他選項等。根作爲起點。我會接受任何有關替代數據結構的建議。 – AppreciateIt