Добавьте одно и то же значение несколько раз в std::vector (повтор)

Я хочу добавить значение несколько раз в std:: vector. Е. Г. добавить значение interger 1 пять раз к вектору:

std::vector<int> vec;
vec.add(1, 5);

vec должен иметь вид {1,1,1,1,1} после этого. Есть ли чистый способ c++ сделать это?

4 ответов


Это действительно зависит от того, что вы хотите сделать.

сделайте вектор длины 5, заполненный единицами:

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

вырастите вектор на 5 и заполните его единицами:

std::vector<int> vec;
// ...
vec.insert(vec.end(), 5, 1);

или измените его размер (если вы знаете начальный размер):

std::vector<int> vec(0);
vec.resize(5, 1);

вы также можете заполнить элементами, используя одну из многих версий fill, например:

fill_n(back_inserter(vec), 5, 1);

и так далее.... Прочитайте документацию библиотеки, некоторые из этих функций возвращают полезную информацию, тоже.


вы можете просто использовать std::vector конструктор для этого:

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

подпись для этого:

vector (size_type n, const value_type& val)

стандартный имеет ряд функций, которые могут быть использованы в таких случаях. std::fill_n будет работать для вашего случая.:

std::fill_n (std::back_inserter(vec), 5, 1);

просто использовать std::vector::insert.

#include <vector>
#include <iostream>

int main()
{
    std::vector<int> a;
    a.insert(a.end(), 5, 1);
    for(auto const& e : a)
        std::cout << e << std::endl;
    return 0;
}

вы можете использовать метод assign:

vec.assign(5, 1);

это удалит все существующие элементы в векторе перед добавлением новых.