У меня есть unordered_set символьногоЭффективное построение станд :: строка из станд :: unordered_set <char>
std::unordered_set<char> u_setAlphabet;
Тогда я хочу, чтобы получить содержание от множества как станд :: строка. Моя реализация теперь выглядит так:
std::string getAlphabet() {
std::string strAlphabet;
for (const char& character : u_setAlphabet)
strAlphabet += character;
return strAlphabet;
}
Это хороший способ решить эту задачу? Добавление символов строки в строку кажется не оптимальным для большого u_setAlphabet (несколько reallocs?). Есть ли какой-нибудь другой метод?
В отношении этикета: идентификатор в куске минимального, типичного примерного кода, вероятно, не должен быть неудобно неудобным, как 'u_setAlphabet'. Хорошими идентификаторами, например, являются 'foo',' bar' и 'x'. –
@KerrekSB С другой стороны, я должен сказать, что я предпочитаю код, который копирует неупорядоченный набор 'setAlphabet' в строку' strAlphabet', к той, которая копирует set (или была строка?) 'Foo' в строку (или была установлена ?) 'bar'. – Angew
@KerrekSB хороший пункт, я имею в виду вашу рекомендацию по следующему вопросу. Некоторые ответы, используя эти имена сейчас, поэтому я не буду изменять содержание вопроса здесь – saleph