如何为向量的前n个元素赋值?c++
How to assign a value to the first n elements of a vector? c++
如何为向量的前n个元素赋值?比方说,我想把1分配给从索引0到索引4的向量。
我已经有了一个大小为11的矢量。现在我想把1加在前5个元素上。
您可以使用std::fill
或std::fill_n
:
std::fill(v.begin(), std::next(v.begin(), 5), 1);
std::fill_n(v.begin(), 5, 1);
注:std::next
为C++11。在这种情况下,它可以被v.begin() + 5
取代。
如果你想构建一个像这样填充的向量,请使用合适的构造函数:
std::vector<int> v(5,1);
这将创建5个值为1的int。
您可以使用std::fill
根据文件:
template< class ForwardIt, class T >
void fill(ForwardIt first, ForwardIt last, const T& value)
{
for (; first != last; ++first) {
*first = value;
}
}
你可以做:
std::fill(v.begin(), v.begin() +5, 1) ;//assume you fill 1 from index 0 to 4(included)
相关文章:
- 复制包含C++所有元素的对象!(构造函数和赋值,最佳实践?
- 是否可以使用宏来访问动态数组或向量中的元素或为其赋值
- 如何为结构的数据元素赋值
- C++如果元素等于 X 则为数组赋值
- C++:向量元素赋值导致访问冲突
- 为什么在为数组中的第一个元素赋值时必须指定索引号?
- 添加数组元素:需要左键作为赋值的左操作数
- vector.back() 可以用来为向量的最后一个元素赋值吗?
- 双向循环列表中的赋值运算符以错误的顺序添加元素
- C++opencv在为Mat(矩阵)元素赋值时,先前指定的元素发生了更改
- 为什么使用 push_back() 赋值时向量元素的地址不连续
- 使用boost multiarray迭代器在数组元素之间进行赋值
- 为什么在未赋值的操作数内进行包扩展会导致最后一个元素
- 如何为向量的前n个元素赋值?c++
- 在不使用元素复制赋值运算符的情况下复制向量 - 可移植性
- 将vector元素赋值给调用emplace_back的函数的result
- 给struct数组中的元素赋值时出错
- 我无法为数组的元素赋值(使用:for 循环和嵌套的 if 语句)
- c++ vector复制赋值,调用其元素的复制机制
- 给map vector容器的元素赋值时发生访问冲突