假设我有一个向量:
vector<int> v;
,我希望它用0到9之间的整数填充。然后我在这里有几个选择:
v.resize(10);
for (int i = 0; i < 10; i++) {
v[i] = i;
}
// or
v.reserve(10);
for (int i = 0; i < 10; i++) {
v.push_back(i);
}
// or
iota(v.begin(), v.end(), 0);
与其他两种方法相比,使用std :: iota有什么内存/时间优势?我个人认为前两者更具可读性,尽管由于我不是C ++专家,我可能会将其与可及性混为一谈。