解释元组循环

时间:2018-06-10 20:51:37

标签: c++ range-v3

在range-v3中,以下是c ++ 17的合法代码。

CardDeck::CardDeck() {
    std::vector<Suit> Suits = {Clubs, Diamonds, Hearts, Spades};
    std::vector<Value> Values = {Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King, Ace};
    for (auto [value, suit] : ranges::view::cartesian_product(Values, Suits))
        this->Cards.emplace_back(value, suit);
    this->shuffle();
}

我从未在任何地方见过auto [value, suit]语法,有人可以解释这是否可行? 是否有一般性解释可以使用何时使用或者它是否来自范围库?

0 个答案:

没有答案