拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 如何实作可迭代结构?

如何实作可迭代结构?

白鹭 - 2022-02-02 2043 0 0

我想撰写一个可以回圈的结构。为此,我添加了两个方法 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)
        ...;
}

uj5u.com热心网友回复:

我认为您正在寻找的型别是std::vector<combo>::iterator.

例子:

typedef std::pair<std::string, std::string> combo;
struct MATCH {
    std::vector<combo> matches;
    std::vector<combo>::iterator begin() { return matches.begin(); }
    std::vector<combo>::iterator end() { return matches.end(); }
};


int main()
{
    MATCH m = { { {"something", "something"} } };
    for (const combo& i : m)
        cout << i.first << " " << i.second << std::endl;
   
   return 0;
}
标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *