C ++:std :: vector :: resize vs.“normal”allocation

时间:2015-10-23 11:19:30

标签: c++ memory-management vector 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());

若然,怎么样?

2 个答案:

答案 0 :(得分:4)

没有区别,除了后者是 微小位 更有效和简洁。

答案 1 :(得分:4)

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