C++:std::vector::resize 与 "normal" 分配

C++: std::vector::resize vs. "normal" allocation

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

我想知道是否

std::vector<int> bar;    
bar.resize(foo.size());

有什么不同
std::vector<int> bar(foo.size());

如果是,怎么做?

没什么区别,只是后者微小一点更高效和简洁。

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