Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 向量列表(C+;+;)_C++_Stl - Fatal编程技术网

C++ 向量列表(C+;+;)

C++ 向量列表(C+;+;),c++,stl,C++,Stl,我想创建一个包含4个向量的列表,变量大小为(n1、n2、3和n4),所有向量都用0填充 我该怎么做?我可以做一个列表mylist,但是如何将mylist[0]的大小设置为n1等?您必须将这些向量添加到列表中: mylist.push_back(vector<float>(n1, 0.f)); mylist.push_back(vector<float>(n2, 0.f)); mylist.push_back(vector<float>(n3, 0.f)); m

我想创建一个包含4个向量的列表,变量大小为(n1、n2、3和n4),所有向量都用0填充
我该怎么做?我可以做一个
列表mylist
,但是如何将mylist[0]的大小设置为n1等?

您必须将这些向量添加到列表中:

mylist.push_back(vector<float>(n1, 0.f));
mylist.push_back(vector<float>(n2, 0.f));
mylist.push_back(vector<float>(n3, 0.f));
mylist.push_back(vector<float>(n4, 0.f));
mylist.push_back(向量(n1,0.f));
mylist.push_back(向量(n2,0.f));
mylist.push_back(向量(n3,0.f));
mylist.push_back(向量(n4,0.f));
vector
构造函数使用两个参数将创建一个(第一个参数)元素,所有元素都设置为第二个参数的值。

//在启用C++11的编译器上
// on a C++11 enabled compiler
std::list<std::vector<float>> listofvectors = {
    std::vector<float>(n1, 0.f)
  , std::vector<float>(n2, 0.f)
  , std::vector<float>(n3, 0.f)
  , std::vector<float>(n4, 0.f)
};
// or more traditional
std::list< std::vector<float> > listofvectors;
listofvectors.push_back(std::vector<float>(n1, 0.f));
// so forth
std::list listofvectors={ 标准::向量(n1,0.f) ,std::向量(n2,0.f) ,std::vector(n3,0.f) ,std::vector(n4,0.f) }; //还是更传统 std::listListofVector; 推回(std::vector(n1,0.f)); //诸如此类
谢谢,很抱歉我是个新手,但为什么要写0.f而不是0?与浮动有关的东西?我们不能只写0吗?不,为什么?Boost总是使用它,在指定初始值设定项列表时效果更好,因为第一个字符是
,下一个是逗号,因此更容易格式化这些行。我想,我们还没有在多行初始值设定项列表中看到“标准”方式。@user2370139它创建了一个浮点文本,而不是int-one(纯0)。在这里它没有太大的重要性,但在其他方面,清楚地说明数字的类型是一个好习惯。考虑<代码> Auto F=0。f;<代码>@sftrabbit我从haskell那里接手的。对我来说,真正的好处是在编辑代码时更容易使用。