std::vector 中的初始值设定项列表构造函数

lov*_*ode 0 c++ constructor vector

我想知道如果我想制作自己的向量类,如何实现初始化列表构造函数?

例如:

Vector_Class<int> v{1, 2, 3, 4, 5};
Run Code Online (Sandbox Code Playgroud)

这种类型的构造函数如何实现呢?

Ted*_*gmo 5

您声明一个采用std::initializer_list<some_type>.

例子:

#include <iostream>
#include <initializer_list>

template<class T>
class foo {
public:
    foo(std::initializer_list<T> Ts) {
        for(auto v : Ts) {
            std::cout << v << '\n';
        }
    }
};

int main() {
    foo<int> x{1,2,3,4,5};
}
Run Code Online (Sandbox Code Playgroud)

输出:

1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)