c_cpp 通用元组模板类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 通用元组模板类相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <cstdarg>


// General Tuple template class
template<class T>
class Tuple
{
public:
  Tuple(size_t len...): _count(len), _items(new T[_count])
  {
    va_list conArgs;
    va_start(conArgs, len);
    for(size_t i =0;i<len;i++)
    {
      _items[i] = va_arg(conArgs, T);
    }
    va_end(conArgs);
  }
  ~Tuple()
  {
    delete[] _items;
  }
  
  T& operator[](size_t index)
  {
    return _items[index % _count];
  }
  
  size_t getCount(void) const
  {
    return _count;
  }
private:
  T* _items;
  size_t _count;
};

int main() {
  Tuple<int> nums(3, 5, 6, 7);
  std::cout << nums.getCount() << std::endl;
  std::cout << nums[2] << std::endl;
}

以上是关于c_cpp 通用元组模板类的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp C ++中的通用容器可迭代数组类

c_cpp 复杂的模板类

c_cpp 链表类模板代码

如何通过使用可变模板参数来专门化元组的类模板?

通过 typescript 3.0 通用休息元组类型从类元组返回实例元组

collections