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
)。
在 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
)。