0
void output_list_contents(std::list<tuple<string, int, double,int>> &my_list)
{
    for(std::list<tuple<string, int, double,int> >::iterator it =my_list.begin(); it!= my_list.end(); ++it)
    {

    }
}

STL リスト内に格納されているすべてのタプルから情報を出力しようとしています。私は構文を知らず、過去1時間グーグルで答えを探しましたが、残念ながら何も見つかりませんでした. 内部に格納されているタプルにアクセスするための構文とロジックに苦労しています。

誰でもここで私を助けてくれますか?

4

3 に答える 3

2

何かのようなもの:

void output_list_contents(std::list<tuple<string, int, double,int>> &my_list)
{
    for(const auto& e : my_list)
    {
        std::cout << std::get<0>(e) << " " << std::get<1>(e) << " "
                  << std::get<2>(e) << " " << std::get<3>(e) << std::endl;
    }
}
于 2013-10-14T17:57:12.790 に答える
0
void output_list_contents(std::list<std::tuple<std::string, int, double, int>>& my_list)
{
    for (auto tup : my_list)
    {
        print_tuple(tup);
    }
}

そして、これはどのようprint_tupleに見えるかです:

template <typename... Ts, int... Is>
void print_tuple(std::tuple<Ts...>& tup, std::index_sequence<Is...>)
{
    auto l = { ((std::cout << std::get<Is>(tup)), 0)... };
}

template <typename... Ts>
void print_tuple(std::tuple<Ts...>& tup)
{
    print_tuple(tup, std::index_sequence_for<Ts...>{});
}
于 2013-10-14T18:02:40.897 に答える