std::vector<int>我的C++应用程序中有一个变量.矢量的大小在运行时确定,但通常是约1000.
我已经对这个向量进行了排序(效果很好),排序后,我只想保留第一个50元素.
我试过了:
kpts.erase(kpts.begin() + 50, kpts.end());
Run Code Online (Sandbox Code Playgroud)
kpts我的矢量在哪里,表现太可怕了!大概是因为这种方式erase运作.
有没有办法只保留50向量的第一个元素?看起来应该是显而易见的,但我找不到办法做到这一点.
Mor*_*itz 44
是的,您可以使用std::vector::resize,如果向量的长度大于n,则只会截断.
见这里:http://www.cplusplus.com/reference/vector/vector/resize/
std::vector<int> myvector;
for (int i=1;i<1000;i++) myvector.push_back(i);
myvector.resize(50);
// myvector will contain values 1..50
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22412 次 |
| 最近记录: |