(C++ 向量)如何在向量内的一系列元素中赋值?
(C++ vectors) How to assign values in a range of elements inside a vector?
我有一个整数向量,比如 {0, 0, 0, 0, 0}
。我需要将一系列元素的 v[i]
增加 1,例如 v[1]
到 v[3]
,这样我就有了 {0, 1, 1, 1, 0}
。怎么做?
只需使用简单的迭代循环,例如:
std::vector<int> v = {0, 0, 0, 0, 0};
for(size_t i = 1; i <= 3; ++i) {
v[i]++;
}
您还可以使用 std::for_each()
和 std::transform()
等标准库算法复制,例如:
std::vector<int> v = {0, 0, 0, 0, 0};
std::for_each(v.begin()+1, v.begin()+4,
[](int& i){ ++i; }
);
std::vector<int> v = {0, 0, 0, 0, 0};
std::transform(v.begin()+1, v.begin()+4, v.begin()+1,
[](int i){ return i+1; }
);
我有一个整数向量,比如 {0, 0, 0, 0, 0}
。我需要将一系列元素的 v[i]
增加 1,例如 v[1]
到 v[3]
,这样我就有了 {0, 1, 1, 1, 0}
。怎么做?
只需使用简单的迭代循环,例如:
std::vector<int> v = {0, 0, 0, 0, 0};
for(size_t i = 1; i <= 3; ++i) {
v[i]++;
}
您还可以使用 std::for_each()
和 std::transform()
等标准库算法复制,例如:
std::vector<int> v = {0, 0, 0, 0, 0};
std::for_each(v.begin()+1, v.begin()+4,
[](int& i){ ++i; }
);
std::vector<int> v = {0, 0, 0, 0, 0};
std::transform(v.begin()+1, v.begin()+4, v.begin()+1,
[](int i){ return i+1; }
);