Re[5]: Нужен совет
От: Кодт Россия  
Дата: 19.08.02 11:05
Оценка: 6 (1)
Здравствуйте 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;
  }

};

Другую функциональность (копирование, очистку и т.д.) можно прикрутить по мере нужды.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.