Упрощение для инициализации строк в векторе строкой по умолчанию - PullRequest
1 голос
/ 01 марта 2020

Я хочу сохранить 50 строк в векторе и хочу инициализировать каждую строку одинаковым строковым литералом "default". Что у меня есть, так это:

std::vector<std::string> str = { 
                                  "default", "default", "default", "default", "default",
                                  "default", "default", "default", "default", "default", 
                                  "default", "default", "default", "default", "default",
                                  "default", "default", "default", "default", "default",
                                  "default", "default", "default", "default", "default",
                                  "default", "default", "default", "default", "default",
                                  "default", "default", "default", "default", "default",
                                  "default", "default", "default", "default", "default",
                                  "default", "default", "default", "default", "default",
                                  "default", "default", "default", "default", "default",
                               };

Но позволяет ли синтаксис C ++ более простой способ без повторения строкового литерала?

Я пытался сделать это с al oop уже два часа, но, поскольку я новичок в использовании std::vector, я не знаю, как назначить определенную строку строковым литералом в правильный вектор.

Спасибо за вашу помощь.

Все полезные ответы получат от меня отклик.

1 Ответ

2 голосов
/ 01 марта 2020

Просто напишите

std::vector<std::string> str( 50, "default" );

Шаблон класса std :: vector, как и все контейнеры стандартной последовательности, имеет следующий конструктор

vector(size_type n, const T& value, const Allocator& = Allocator());
...