pea*_*ear 10 c++ vector push-back std-pair
std::vector<std::vector< std::pair<int, int> > > offset_table;
for (int i = 0; i < (offset.Width()*offset.Width()); ++i)
{
offset_table.push_back( std::vector< std::pair<int, int> > );
}
Run Code Online (Sandbox Code Playgroud)
这是我的代码,但我收到错误:
main.cpp: In function ‘void Compress(const Image<Color>&, Image<bool>&, Image<Color>&, Image<Offset>&)’:
main.cpp:48:66: error: expected primary-expression before ‘)’ token
Run Code Online (Sandbox Code Playgroud)
我不想要成对中的任何值,我只想拥有一个空向量的向量.我该怎么做?
小智 13
你想构造一个传递给push_back的向量,你只是缺少括号:
offset_table.push_back( std::vector< std::pair<int, int> >() );
Run Code Online (Sandbox Code Playgroud)
或者,您可以执行以下操作,而不是循环.它更好,因为向量将在单个分配中分配适量的内存:
offset_table.resize( offset.Width()*offset.Width(), std::vector< std::pair<int, int> >() );
Run Code Online (Sandbox Code Playgroud)
或者这更简洁,因为它使用了resize的默认第二个参数:
offset_table.resize( offset.Width()*offset.Width() );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9142 次 |
| 最近记录: |