首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用可变模板在c++中定义列表类

在C++中,使用可变模板(variadic templates)可以定义一个列表类(list class),该类可以接受任意数量的元素,并提供对这些元素的操作和访问。

可变模板是C++11引入的特性,它允许模板接受可变数量的参数。在定义列表类时,可以使用可变模板来接受任意数量的元素类型作为模板参数。

以下是一个使用可变模板定义列表类的示例:

代码语言:cpp
复制
#include <iostream>

// 定义列表类
template<typename... Args>
class List {
public:
    // 构造函数,接受任意数量的参数
    List(Args... args) {
        addToList(args...);
    }

    // 添加元素到列表
    void addToList(Args... args) {
        add(args...);
    }

    // 递归添加元素到列表
    void add() {}

    template<typename T, typename... Rest>
    void add(T value, Rest... rest) {
        list.push_back(value);
        add(rest...);
    }

    // 获取列表大小
    size_t size() const {
        return list.size();
    }

    // 打印列表元素
    void print() const {
        for (const auto& item : list) {
            std::cout << item << " ";
        }
        std::cout << std::endl;
    }

private:
    std::vector<Args...> list;
};

int main() {
    // 创建列表对象并添加元素
    List<int, std::string, double> myList(10, "Hello", 3.14);

    // 打印列表大小和元素
    std::cout << "List size: " << myList.size() << std::endl;
    myList.print();

    return 0;
}

在上述示例中,我们定义了一个List类,它使用可变模板参数Args来接受任意数量的元素类型。构造函数和addToList函数使用可变模板参数args来接受任意数量的参数,并将它们添加到列表中。add函数使用递归方式将参数逐个添加到列表中。size函数返回列表的大小,print函数打印列表的元素。

这个列表类可以用于存储和操作不同类型的元素,例如整数、字符串、浮点数等。它提供了动态添加元素、获取列表大小和打印列表的功能。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的结果

领券