Advertisement
Guest User

Untitled

a guest
May 27th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.10 KB | None | 0 0
  1. #include <iostream>
  2. #include <list>
  3. #include <string>
  4. #include <variant>
  5.  
  6. int main()
  7. {
  8.     std::list<std::variant<std::list<int>, std::list<std::string>>> list_of_lists;
  9.     std::list<int> int_list = {1, 2, 3};
  10.     std::list<std::string> string_list = {"one", "two", "three"};
  11.    
  12.     list_of_lists.push_back(int_list);
  13.     list_of_lists.push_back(string_list);
  14.  
  15.     // Iterate over all std::variant elements.
  16.     for (auto v : list_of_lists) {
  17.         // Check if the variant holds a list of ints.
  18.         if (std::holds_alternative<std::list<int>>(v)) {
  19.             // 'v' holds a list of ints.
  20.             for (auto i : std::get<std::list<int>>(v)) {
  21.                 std::cout << i << ' ';
  22.             }
  23.             std::cout << '\n';
  24.         }
  25.         // Check if the variant holds a list of strings.
  26.         else if (std::holds_alternative<std::list<std::string>>(v)) {
  27.             // 'v' holds a list of strings.
  28.             for (const auto& s : std::get<std::list<std::string>>(v)) {
  29.                 std::cout << s << ' ';
  30.             }
  31.             std::cout << '\n';
  32.         }
  33.     }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement