Re[6]: Нужен совет
От: AlexTAI alextai.narod.ru
Дата: 19.08.02 11:25
Оценка:
Здравствуйте Кодт, Вы писали:

К>Здравствуйте 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): если есть ошибки (например нехватка памяти) — как ловить ???
Тумаров Александр ( AlexTAI )
alextai3@yahoo.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.