代码之家  ›  专栏  ›  技术社区  ›  Ismail Marmoush

快速矢量初始化C++ [复制]

  •  3
  • Ismail Marmoush  · 技术社区  · 14 年前

    可能重复:
    C++: Easiest way to initialize an STL vector with hardcoded elements
    Using STL Allocator with STL Vectors

    出于好奇,我想知道快速初始化向量的方法

    我只知道这个

    double inputar[]={1,0,0,0};
    vector<double> input(inputar,inputar+4);
    
    1 回复  |  直到 12 年前
        1
  •  3
  •   T.E.D.    12 年前

    这是当前C++标准的缺点之一。向量可以很好地替换C数组,但是初始化一个数组更像是一个pita。

    我听说的最好的是 the Boost assignment package . 根据文档,您可以使用它:

    #include <boost/assign/std/vector.hpp> // for 'operator+=()'
    #include <boost/assert.hpp>; 
    using namespace std;
    using namespace boost::assign; // bring 'operator+=()' into scope
    
    {
        vector<int> values;  
        values += 1,2,3,4,5,6,7,8,9; // insert values at the end of the container
        BOOST_ASSERT( values.size() == 9 );
        BOOST_ASSERT( values[0] == 1 );
        BOOST_ASSERT( values[8] == 9 );
    }