快速向量初始化c ++

时间:2010-02-17 13:53:02

标签: c++ syntax initialization vector

  

可能重复:
  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 个答案:

答案 0 :(得分:3)

这是IMHO当前C ++标准的失败之一。 Vector是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 );
}