【发布时间】:2020-12-20 19:10:38
【问题描述】:
假设我有一个 10 个整数的向量,我想为 5 个元素中的每一个创建 2 个子向量。
如果我像这样对向量进行切片会更快吗:
vector<int> vec({0,1,2,3,4,5,6,7,8,9});
auto x = vec.begin();
vector<int> vec2(x, x+5);
x += 5;
vector<int> vec3(x, x+5);
与此相反?
vector<int> vec({0,1,2,3,4,5,6,7,8,9});
vector<int> vec2;
for (int i = 0; i < 5; i++) {
vec2.push_back(vec[i]);
}
vector<int> vec3;
for (int i = 5; i < 10; i++) {
vec3.push_back(vec[i]);
}
【问题讨论】:
-
请贴出真实代码。
std::vector没有push函数,for循环条件缺失/不正确。 -
已修复,抱歉
-
这与询问
i++和++i一样是对优化的误解。您测量过性能问题吗?
标签: c++ optimization vector