2014-01-09 5 views
1

Я знаю, что можно использовать boost escaped_list_separator для разделения строки и одновременного удаления экранов.Есть ли какая-то функция возврата escaped_list_separator?

Есть ли аналогичный (элегантный) способ достижения обратного результата? Как объединение нескольких строк в один, добавляя выходы?

+0

не разработчик C++, так что я не могу говорить, будет ли он удовлетворить ваши потребности, но HTTP: // WWW. boost.org/doc/libs/1_55_0/doc/html/string_algo/reference.html#header.boost.algorithm.string.join_hpp представляется подходящим? –

+0

@SeanBright, предикат просто проверяет входные данные, в то время как в процессе использования 'join' мне нужно изменить вход, экранируя определенные символы. – kaspersky

+0

Можете ли вы просто запустить функцию 'escape()' для каждого элемента, прежде чем «присоединить» их все? – Keeler

ответ

2

Я знаю, что вам нужен один лайнер, но он не может найти ничего, что бы соответствовало вашим потребностям.

С string escape(const string &s) функции, вы можете написать свой собственный Однострочник:

#include <algorithm> 

string escape(const string &s) 
{ 
    // Do your thing. 
    return result; 
} 

string joinEscaped(const vector<string> &v, const string &delimiter) 
{ 
    std::vector<string> temp(v.size()); 
    std::transform(v.begin(), v.end(), temp.begin(), escape); 

    return boost::algorithm::join(temp, delimiter); 
} 
Смежные вопросы