我基本上是在重新制作 set 容器,我想知道如何将大括号括起来的初始值设定项列表传递给容器。

mySet<int> myset = {"test", "test 2"};

我试图重载 operator= 以将列表作为参数。

最佳答案

尽管这里存在 =,但这是在构造一个集合,因此您需要的是一个构造函数(以 std::initializer_list 作为其参数)。

template<class T>
class myset {
public:
// ...
    mySet(std::initializer_list<T> init) {
        for (T const &t : init)
            insert(t);
    }
};

关于c++自定义容器pass{}列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35167073/

10-11 01:04