1

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

我已经有一个大小为 11 的向量。现在我想将 1 放在前 5 个元素中。

4

3 回答 3

4

您可以使用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

于 2013-07-31T14:21:45.877 回答
1

如果你想构造一个这样填充的向量,请使用合适的构造函数:

std::vector<int> v(5,1);

这将创建 5 个值为 1 的整数。

于 2013-07-31T14:23:01.537 回答
1

您可以使用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)
于 2013-07-31T14:23:26.670 回答