• std::initializer_list<T>


    std::initializer_list<T>提供了以下接口:

    size_t size() const noexcept;
    const T* begin() const noexcept;
    const T* end() const noexcept;

    通过std::initializer_list<T>可以实现大括号初始化对象。也可以实现类似于动态类型的效果。

     1 #include <iostream>
     2 #include <initializer_list>
     3 #include <vector>
     4 
     5 using namespace std;
     6 
     7 class Test {
     8     vector<int> list;
     9 public:
    10     Test(std::initializer_list<int> args) {
    11         list.insert(list.end(), args.begin(), args.end());
    12     }
    13     void print() {
    14         for (auto &it : list) {
    15             cout << it << ' ';
    16         }
    17         cout << endl;
    18     }
    19     vector<int> &get() {
    20         return list;
    21     }
    22 };
    23 
    24 class TestArray {
    25     vector<Test> list;
    26 public:
    27     TestArray(std::initializer_list<Test> args) {
    28         list.insert(list.end(), args.begin(), args.end());
    29     }
    30     void print() {
    31         for (auto &it : list) {
    32             for (auto &x : it.get()) {
    33                 cout << x << ' ';
    34             }
    35             cout << endl;
    36         }
    37     }
    38 };
    39 
    40 int main()
    41 {
    42     Test t{1, 2, 3, 4, 5, 6};
    43     t.print();
    44     TestArray t2{ {1, 2},{3},{4, 5, 6},{7, 8, 9, 10} };
    45     t2.print();
    46     int n;
    47     cin >> n;
    48     return 0;
    49 }
  • 相关阅读:
    645. Set Mismatch
    400. Nth Digit
    633. Sum of Square Numbers
    507. Perfect Number
    453. Minimum Moves to Equal Array Elements
    441. Arranging Coins
    Girls and Boys
    二分图
    Gap
    SZU-A22
  • 原文地址:https://www.cnblogs.com/HadesBlog/p/13700491.html
Copyright © 2020-2023  润新知