存储和构造成员const数组或字符串的最佳方法

时间:2016-07-21 17:47:18

标签: arrays c++11 member

假设我有这样一个类:

class foo {
  const A arr;
  foo(B arg): arr(arg) { }
};

AB类型的最有效选择是什么?我在想这样的事情,

class foo {
  const std::initializer_list<std::string> arr;
  foo(std::initializer_list<std::string> arg): arr(arg) { }
};

但我认为这将在arr中复制构造字符串。我希望能够做到这一点:

std::string str1("there"), str2("now");
foo bar({"hello",str1,std::move(str2)});

并将括号中的右值字符串移入arr

我应该使用std::initializer_liststd::vector还是其他什么?

1 个答案:

答案 0 :(得分:1)

whoami COMPUTER\myIISPoolUser certmgr.msc 定义为arr,将ctor的参数定义为std::vector<std::string>,主要是您猜到的。