如何为向量的前n个元素赋值?c++

How to assign a value to the first n elements of a vector? c++

本文关键字:元素 赋值 c++ 向量      更新时间:2023-10-16

如何为向量的前n个元素赋值?比方说,我想把1分配给从索引0到索引4的向量。

我已经有了一个大小为11的矢量。现在我想把1加在前5个元素上。

您可以使用std::fillstd::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)