- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在将一些 C++ 代码转换为 Python。但我不确定这条线到底做了什么。
vector<double>().swap(prev);
我编译了一个简单的程序来查看它实际做了什么,我发现它将 vector “prev”的大小调整为 0。
#include <vector>
#include <iostream>
using namespace std;
int main(){
vector<int> ax;
ax.reserve(10);
for(int i=99; i<110; ++i){
ax.push_back(i);
}
for(int i=0; i<ax.size(); ++i){
std::cout << ax[i] << ' ';
}
vector<int>().swap(ax);
cout<<"\nAfter space \n";
cout<<"size is "<<ax.size();
for(int i=0; i<ax.size(); ++i){
std::cout << ax[i];
}
}
最佳答案
这是程序员出于某种原因决定的结果
vector<int>().swap(ax);
比
更清晰ax.clear();
(前者将最初为空的匿名临时 vector<int>()
与 ax
交换)。
也许不那么愤世嫉俗,swap
方法可能重置 vector 的容量,而clear()
从来不会。但这仍然是一个奇怪的选择:如果您想要重置容量,请使用
ax.clear();
ax.shrink_to_fit();
但即使是 that 也不能保证重置容量;由实现决定。
关于c++ - 需要解释一下,这一行到底发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57707877/
这对你们来说可能很简单,但由于我是java新手,所以我想知道实际上什么是 接下来的部分会发生什么? if (args.length > 0) { file = args[0]; } publi
在我的 View Controller 中,我将 UITapGestureRecognizer 添加到 self.view。我在 self.view 之上添加了一个小 View 。当我点击小 View
我今天尝试从 Obj-C 开始并转到 Swift,我正在阅读文档。我试图在 Swift 中创建一个简单的 IBOutlet,但它不断给我这些错误。 View Controller 没有初始化器 req
我正在尝试使用 VIM 完成(字典和当前缓冲区),但我遇到了问题?和 !在方法名称的末尾。我能以某种方式向 vim 解释方法名称(基本上是单词)最后只能有它,而且只有一个,即 method_name
我是一名优秀的程序员,十分优秀!