加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 如何创建用列表初始化的构造函数?

发布时间:2020-12-16 10:09:06 所属栏目:百科 来源:网络整理
导读:如何使用包含n个元素的列表初始化构造函数? X x = {4,5,6,...}; 解决方法 对于包含n个元素的列表,您需要使用std :: initializer_list. Initializer_list objects are automatically constructed as if an array of elements of type T was allocated,with e
如何使用包含n个元素的列表初始化构造函数?

X x = {4,5,6,...};

解决方法

对于包含n个元素的列表,您需要使用std :: initializer_list.

Initializer_list objects are automatically constructed as if an array
of elements of type T was allocated,with each of the elements in the
list being copy-initialized to its corresponding element in the array,
using any necessary non-narrowing implicit conversions.

举个例子:

#include <iostream>
#include <initializer_list>
#include <vector>

template<class T>
class X {
  long unsigned int size;
  std::vector<T> _elem;
public:
  X(std::initializer_list<T> l): size{l.size()} {
    for(auto x: l)
      _elem.push_back(x);
  }

  void print() {
    for(auto x: _elem)
      std::cout << x << " ";
  }
};

int main(int argc,char **argv) {
  X<int> x = {4,10,8,6};
  x.print();
  return 0;
}

有关std :: initializer_list的更多信息:
http://www.cplusplus.com/reference/initializer_list/initializer_list/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读