【问题标题】:how to initialize an array of std::vector?如何初始化一个 std::vector 数组?
【发布时间】:2013-07-25 05:11:25
【问题描述】:

众所周知,像这样初始化int的数组是很正常的:

int intAry[] = {7, 8, 9};

所以,我想知道,如何初始化一个std::vector in the same way的数组(就在初始列表中):

typedef std::vector<int> type;
type vecAry[] = {vec1, vec2, vec3};

我知道将代码编写为流是合法的,现在我的问题是如何在一行代码中初始化 vecAry:

type vec1;
type vec2;
type vec3;
type vecAry = {vec1, vec2, vec3};

【问题讨论】:

  • 为什么需要向量数组?
  • @0x499602D2,你在开玩笑吗?你不能用 C++ 编译。
  • @Hitesh Vaghani,为什么要问我的要求?我想在我的代码中实现设计模式。
  • 因为向量的向量总是存在的。
  • 你的帖子应该是type vecAry[] = {vec1, vec2, vec3}; ?

标签: c++ visual-studio-2010 visual-c++ stl


【解决方案1】:

在 C++11 中,

type vecAry[] {{},{},{}};

或者如果你想要非空向量

type vecAry[] {{1,2,3},{4,5,6},{7,8,9}};

如果你卡在过去,你可以用空向量初始化它:

type vecAry[] = {type(), type(), type()};

但是如果没有像Boost Assignment library 中的帮助器,你不能用任意值初始化它:

type vecAry[] = {list_of(1)(2)(3), list_of(4)(5)(6), list_of(7)(8)(9)};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 2011-01-26
    • 2013-06-06
    • 2018-10-17
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    相关资源
    最近更新 更多