c ++:创建元组并添加元素

c++ : creating tuple & adding an element

我有几个自定义 classes 对象,我尝试创建一个 class,它可以使用 std::tuple 存储我以前的所有对象。不幸的是我是 c++ 元组的新手。以下是我到目前为止所做的:

class Universe {

public : 
    std::tuple<Plain, Point, Rectangle> all_things;

    Universe() {
        this->all_things = std::make_tuple();
    };

    template <class T>
    void add( T obj ) {
        this->all_things.append(obj);
    }; 
}

这是我得到的错误(与我在使用空构造函数时遇到的错误相同):

error: no matching function for call to 'std::tuple<Plain, Point, Rectangle>::tuple()'
   18 |     Universe() {

另外我想知道是否有任何元组方法可以添加一个东西。抱歉,我还没有在网上找到任何有用的信息...

您看到的错误暗示元组包含的成员之一不是默认构造的。在这种情况下,您必须使用适当的参数初始化成员元组以使用元组成员的非默认构造函数。

Also I would like to know if there any tuple method for adding a thing.

没有。元组包含其生命周期开始到结束的所有成员。无法添加或删除元素。