Здравствуйте Кодт, Вы писали:
К>Здравствуйте 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;
К> }
К>};
К>
К>Другую функциональность (копирование, очистку и т.д.) можно прикрутить по мере нужды.
Круто.
и... надеюсь последний вопрос(я только начал знакомиться с STL): если есть ошибки (например нехватка памяти) — как ловить ???