Вложение вектора строк в одну строку — распространенная операция в программировании. Хотя существуют различные методы, в этой статье рассматриваются два элегантных решения, позволяющих максимизировать читабельность и эффективность.
Первый подход предполагает использование определяемой пользователем функции. Вот фрагмент кода:
static std::string& implode(const std::vector<:string>& elems, char delim, std::string& s) {
for (std::vector<:string>::const_iterator ii = elems.begin(); ii != elems.end(); ii) {
s = (*ii);
if (ii 1 != elems.end()) {
s = delim;
}
}
return s;
}
Эта функция принимает вектор строк, разделитель и ссылку на строковую переменную. Он выполняет итерацию по вектору, добавляя каждый элемент к строковой переменной и при необходимости добавляя разделитель.
Однако более элегантное решение — использовать мощную библиотеку Boost:
#include
...
std::string joinedString = boost::algorithm::join(elems, delim);
Этот подход использует функцию boost::algorithm::join, которая принимает последовательность строк и разделитель в качестве аргументов и возвращает одну строку.
Использование Boost обеспечивает повышенную краткость и читаемость, обеспечивая при этом преимущества в производительности, присущие методу векторной итерации. Кроме того, это повышает переносимость кода, поскольку Boost широко поддерживается на разных платформах.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3