gpt4 book ai didi

c++ - 保留 std::vector<> 的前 N ​​个元素并删除其余元素

转载 作者:IT老高 更新时间:2023-10-28 21:39:12 34 4
gpt4 key购买 nike

我有一个 std::vector<int>我的 C++ 中的变量应用。 vector 的大小在运行时确定,但通常约为 1000 .

我已经对这个 vector 进行了排序(效果很好),排序后,我想只保留第一个 50元素。

我试过了:

kpts.erase(kpts.begin() + 50, kpts.end());

在哪里 kpts是我的 vector ,性能太可怕了!大概是因为方式erase运作。

有没有办法只保留第一个50 vector 的元素? 看起来应该很明显,但我找不到这样做的方法。

最佳答案

是的,您可以使用 std::vector::resize,它只会在 vector 的长度大于 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

关于c++ - 保留 std::vector<> 的前 N ​​个元素并删除其余元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21493414/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com