【发布时间】:2022-01-07 23:47:38
【问题描述】:
我想编写一个可以循环的结构。为此,我添加了两个方法 begin 和 end ,它们将返回 begin ,一个已经存在的向量的 end 值。我应该指定什么返回类型,这两种方法是否足以使 MATCH 结构在我的上下文中工作?到目前为止,这是我所得到的:
typedef std::pair<std::string, std::string> combo;
struct MATCH {
std::vector<combo> matches;
? begin() { return matches.begin(); }
? end() { return matches.end(); }
};
int main() {
MATCH m = { ... };
for (const combo& i : m)
...;
}
【问题讨论】:
-
我建议使用与
struct不同的容器;一个可迭代的。否则,我建议实施迭代器。根据一次迭代的值,可以返回成员;但是,为了使其工作,您需要让所有成员具有相同的类型。