Мне очень нравится ответ Джеймса, но есть еще один вариант, который вы могли бы рассмотреть - просто объединить все в std::map
:
std::map<std::string, bool> myMap(v.begin(), v.end());
Или, если у вас есть повторяющиеся строки, a std::multimap
:
std::multimap<std::string, bool> myMultiMap(v.begin(), v.end());
Это имеет дополнительное преимущество: если вам необходимо добавить или удалить новые пары ключ / значение, вы можете сделать это в O (lg n), а не в O (n) для отсортированного вектора.
Если вы действительно должны использовать вектор, тогда ответьте Джеймсу. Однако, если у вас есть вектор пар, есть большая вероятность, что вы действительно хотите std::map
.