Ниже кода
std::vector< std::string > v07 = { { "1", "2" } };
эквивалентно
std::string s = {"1","2"}; // call string(const char*, const char*)
std::vector<std::string> v07 = {s}; // initializer list with one item
проблема с
s={"1","2"};
Это вызывает string(const char* start, const char* end)
конструктор, но start
и end
должен ссылаться на один и тот же строковый объект. "1" и "2" - два разных объекта, поэтому он ведет к UB.