Добавьте одно и то же значение несколько раз в std :: vector (repeat) Я хочу добавить значение несколько раз к std :: vector. Например, добавьте значение 1 для интерьеров к вектору: std::vector<int> vec; vec.add(1, 5); vec должен иметь следующий вид: {1,1,1,1,1}. Существует ли чистый c++ способ сделать это? Ответ 1 Это действительно зависит от того, что вы хотите сделать. Сделайте вектор длиной 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); и т. д.... Читайте библиотечную документацию, некоторые из этих функций также возвращают полезную информацию. Ответ 2 Вы можете просто использовать конструктор std::vector для этого: std::vector<int> vec (5,1); Подпись для этого: vector (size_type n, const value_type& val) Стандартный заголовок algorithm имеет ряд функций, которые можно использовать в таких случаях. std::fill_n будет работать для вашего дела: std::fill_n (std::back_inserter(vec), 5, 1); Ответ 3 Просто используйте 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; } Ответ 4 Вы можете использовать метод присваивания: vec.assign(5, 1); Это приведет к удалению любых существующих элементов в векторе перед добавлением новых.
Ответ 1 Это действительно зависит от того, что вы хотите сделать. Сделайте вектор длиной 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); и т. д.... Читайте библиотечную документацию, некоторые из этих функций также возвращают полезную информацию.
Ответ 2 Вы можете просто использовать конструктор std::vector для этого: std::vector<int> vec (5,1); Подпись для этого: vector (size_type n, const value_type& val) Стандартный заголовок algorithm имеет ряд функций, которые можно использовать в таких случаях. std::fill_n будет работать для вашего дела: std::fill_n (std::back_inserter(vec), 5, 1);
Ответ 3 Просто используйте 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; }
Ответ 4 Вы можете использовать метод присваивания: vec.assign(5, 1); Это приведет к удалению любых существующих элементов в векторе перед добавлением новых.