我想初始化vector
list<int>
。我使用fill
函数,但我的编译器显示错误。请帮助我这个方向。
std::vector<std::list<int>> neighbors(NRecords);
std::fill(neighbors.begin,neighbors.end,&std::vector<int>(NNeighbors)); // ERROR
错误:错误2错误C3867:'std :: vector&lt; _Ty&gt; :: begin':函数调用缺少参数列表;使用'&amp; std :: vector&lt; _Ty&gt; :: begin'创建指向成员的指针...
答案 0 :(得分:4)
从我可以从代码中推断出来,似乎你只是想要这个:
std::vector<std::list<int>> neighbors(NRecords, std::list<int>(NNeighbors));
这使用a constructor (#2 in link),类似于以下内容:
vector(size_type count, value_type value);
在上面的调用中,NRecords
是向量将包含的元素数,第二个参数是一个以相同方式初始化的列表(它以NNeighbors
的大小开头)为每个向量元素的值。这样就不必创建具有大小的矢量,然后单独填充它。
为了完整起见,您的std::fill
电话有几处出错:
begin
和end
是函数,因此您需要括号(begin()
)。 std::vector
时,您正在使用std::list
填充它。更正后,可以写成:
std::fill(neighbours.begin(), neighbours.end(), std::list<int>(NNeighbors));
答案 1 :(得分:2)
neighbors.begin
应为neighbors.begin()
neighbors.end
应为neighbors.end()
std::fill(neighbors.begin(),neighbors.end(),std::list<int>(NNeighbors));
答案 2 :(得分:1)
根据Chris的帖子
使用std::vector
的构造函数
或者:
std::fill(neighbors.begin(),neighbors.end(),std::list<int>(NNeighbors));
答案 3 :(得分:0)
如果我正确阅读了您的代码,您只需要声明一个列表向量。 我已经让它在我的主文件中工作,但无法弄清楚 如何做一个班级的私人成员.....
vector< list < string >> hashTable(1373);