Здравствуйте AlexTAI, Вы писали:
ATAI>Тогда еще один маленький вопрос — как перекопировать полученный список в wchar_t * Буффер поэффективнее.
Посчитать суммарную длину, выделить и поместить.
class wstrlist
{
// ... skipped ...
public:
size_t length() const
{
size_t l = 0;
list_t::const_iterator it = m_list.begin(), itEnd = m_list.end();
for(; it != itEnd; it++) l += it->length();
return l;
}
void export_buf(wchar_t* buffer) const // полагая, что размер буфера >= length() + 1
{
list_t::const_iterator it = m_list.begin(), itEnd = m_list.end();
for(; it != itEnd; it++)
{
wcscpy(buffer, it->c_str());
buffer += it->length();
}
}
// исправляю ошибку. здесь должен быть for а не while
void export(owstream& os) const
{
list_t::const_iterator it = m_list.begin(), itEnd = m_list.end();
for(; it != itEnd; it++) os << *it;
}
};
Другую функциональность (копирование, очистку и т.д.) можно прикрутить по мере нужды.