如何在 c++ 中清除矢量容量?
How to clear Vector capacity in c++?
面试官在我的一次面试中问了我这个问题。我认为没有办法清除矢量的容量。谁能证实这一点?
你需要shrink_to_fit
尽管它不保证呼叫会得到遵守。
请求删除未使用的容量。
将容量((减少到大小((是一个不具约束力的请求。这取决于 关于请求是否得到满足的实现。
此代码可能会也可能不会工作,具体取决于实现(尽管适用于大多数实现(
template<typename T>
void ClearCapacityPleaseIfYouCan(std::vector<T> &v){
v.resize(0);
v.shrink_to_fit();
}
std::vector
试图向您隐藏存储的抽象。对于大多数用例,您无需知道容量如何增长或缩小。但众所周知,面试官不会在乎真实的用例。
有一种方法:交换一个空向量。
std::vector<T> vec_to_clear;
....
{
std::vector<T> empty;
std::swap(vec_to_clear, empty);
}
相关文章:
- 清除前检查矢量
- 具有非整数边容量的最大流量的Dinic算法
- 将stl字符串缩小到小于15个字符的容量
- ifstream文件在从行中读取时被清除
- 在容量内调整矢量大小时的性能影响
- WINAPI 注册应用程序重新启动时不清除打开的套接字
- 如何清除/清空已打开的文件C++
- std::vector的容量会降低吗?
- 可视化C++载体:未使用的容量
- 如何在 c++ 中清除矢量容量?
- 可以清除递归函数中的变量吗?
- 在清除 istream 之前,我不应该需要取消获取它吗?
- 当我将其插入无序地图时,矢量的容量为 0
- 结构成员在访问时被清除
- 清除输入缓冲区后未提取字符串流
- SDL_ttf清除我之前和将来的所有渲染
- 如何使用内存集清除字符数组
- 有没有办法在c ++中清除空数组,请检查下面的代码以获取说明
- QTreeWidgetItem 设置不可选择将清除选择
- 清除向量会影响它的容量吗?