C++:std::vector::resize 与“正常”分配

Use*_*291 3 c++ memory-management allocation vector

在 的代码示例中std::transform,有一个代码示例如下:

std::vector<int> foo;
std::vector<int> bar;

//add some elements to foo

bar.resize(foo.size());

//store elements transformed from foo's in bar
Run Code Online (Sandbox Code Playgroud)

我想知道是否

std::vector<int> bar;    
bar.resize(foo.size());
Run Code Online (Sandbox Code Playgroud)

有什么不同

std::vector<int> bar(foo.size());
Run Code Online (Sandbox Code Playgroud)

如果是这样,如何?

Som*_*ude 5

不,没有区别。至少不是你展示它的方式(foo在 的定义bar和调用之间没有插入resize)。