【发布时间】:2010-09-10 07:49:41
【问题描述】:
我在 C++ 中有一个小问题,我不知道如何解决。 问题的第一部分是通过 [] 访问结构中的元素,或者更好的是,将 [] 映射到子元素。
我的结构是这样的:
struct e {
std::string content;
std::string name;
std::map<std::string, std::vector<e> > elements;
};
如果我想访问 e 的子元素,我可以这样做:e.elements["e1"][0].elements["e1sub"][0].content,是否可以映射它以便我可以这样称呼它:e["e1"][0]["e1sub"][0],这只是意味着他有用 e.elements[]“替换”每个 e[]。
也许这可以通过模板来完成,但我还不知道如何使用它们,因为我刚刚开始学习 C++。
提前感谢您的帮助,罗宾。
【问题讨论】:
-
在
struct e中的vector<e>在技术上是非法的吗(不完整类型的向量,尽管取决于实现细节,您可以逃脱)? -
除了下面给出的所有建议之外,建议将
elements设为私有/受保护成员
标签: c++ templates struct operator-overloading dynamic-data