Фактически вы пытаетесь инициализировать объект типа std::vector<std::string>
, используя два конструктора одновременно.
Первый конструктор - это
explicit vector(size_type n, const Allocator& = Allocator());
, а второй конструктор
vector(initializer_list<T>, const Allocator& = Allocator());
Это не имеет смысла.
Вы всегда можете получить количество элементов в векторе, используя его функцию-член size
. И вы всегда можете изменить размер вектора, используя его метод resize
.
Более того, вы можете использовать основанный на диапазоне диапазон для l oop, где знание количества элементов не требуется.
Так что просто напишите
vector<string>possiblePalindromes =
{ "A man a plan a canal Panama",
"The rain in Spain",
"No lemon, no melon",
"radar",
"CS1D",
"Was it a cat I saw?",
"Racecar",
"Saddleback",
"dad" };
Вот демонстрационная программа
#include <iostream>
#include <string>
#include <vector>
int main()
{
std::vector<std::string> possiblePalindromes =
{
"A man a plan a canal Panama",
"The rain in Spain",
"No lemon, no melon",
"radar",
"CS1D",
"Was it a cat I saw?",
"Racecar",
"Saddleback",
"dad"
};
std::cout << "The vecor contains " << possiblePalindromes.size() << " elements\n";
std::cout << "They are:\n";
for ( const auto &s : possiblePalindromes )
{
std::cout << '\t' << s << '\n';
}
return 0;
}
Ее вывод
The vecor contains 9 elements
They are:
A man a plan a canal Panama
The rain in Spain
No lemon, no melon
radar
CS1D
Was it a cat I saw?
Racecar
Saddleback
dad