copy(it1, it2, back_inserter(buffer));

 Line::iterator i = buffer.begin();

 Line::iterator p;

 while (i != buffer.end()) {

  p = find(i, buffer.end(), ' ');

  lines.push_back(new Line(i, p));

  i = ++p;

 }

 sort(lines.begin(), lines.end(), less_p‹Line*›());

 cout ‹‹ 'Read ' ‹‹ lines.size() ‹‹ ' lines' ‹‹ endl;

 vector‹Line*›::iterator j;

 for(j = lines.begin(); j!= lines.end(); j++) printLine(*j);

 release(lines.begin(), lines.end()); // Release memory.

 return 0;

}

alloc1.cpp

#include ‹stl.h›

#include ‹ospace/stl/examples/myaloc.h›

int main() {

 {

  cout ‹‹ 'vectors:' ‹‹ endl;

  os_my_allocator‹int› alloc;

  vector‹int› v3(alloc);

  v3.push_back(42);

  vector‹int› v4(alloc);

  v4.push_back(42);

 }

 {

  cout ‹‹ 'bit_vectors:' ‹‹ endl;

  os_my_allocator‹unsigned int› alloc;

  bit_vector v1(alloc);

  v1.push_back(1);

 }

 {

  cout ‹‹ 'deques:' ‹‹ endl;

  os_my_allocator‹int› alloc;

  deque‹int› d(alloc);

  d.push_back(42);

 }

 {

  cout ‹‹ 'lists:' ‹‹ endl;

  os_my_allocator‹os_list_node‹int› › alloc;

  list‹int› l(alloc);

  l.push_back(42);

 }

 {

  cout ‹‹ 'sets:' ‹‹ endl;

  os_my_allocator‹os_value_node‹int› › alloc;

  set‹int, less‹int› › s(alloc);

  s.insert(42);

 }

 {

  cout ‹‹ 'maps' ‹‹ endl;

  os_my_allocator‹os_value_node‹os_pair‹const int, float› › › alloc;

  map‹int, float, less‹int› › m(alloc);

  m[4] = 2.0;

 }

 return 0;

}

release2.cpp

#include ‹stl.h›

#include ‹iostream.h›

class X {

public:

 X(int i_): i (i_) {}

 ~X() {cout ‹‹ 'Delete X(' ‹‹ i ‹‹ ')' ‹‹ endl;}

 int i;

};

ostream& operator ‹‹ (ostream& stream_, const X& x_) {

 return stream_ ‹‹ 'X(' ‹‹ x_.i ‹‹ ')';

}

int main() {

 vector‹X*› v;

 v.push_back(new X(2));

 v.push_back(new X(1));

 v.push_back(new X(4));

 vector‹X*›::iterator i;

 cout ‹‹ 'Initial contents:' ‹‹ endl;

 for (i = v.begin(); i!= v.end(); i++) cout ‹‹ ' ' ‹‹ *(*i) ‹‹ endl;

 release(v.begin()); // Delete the first heap-based object.

 v.erase(v.begin()); // Erase the first element.

 cout ‹‹ 'Remaining contents:' ‹‹ endl;

 for (i = v.begin(); i != v.end(); i++) cout ‹‹ ' ' ‹‹ *(*i) ‹‹ endl;

 release(v.begin(), v.end()); // Delete remaining heap-based objects.

 v.erase(v.begin(), v.end()); // Erase remaining elements.

 return 0;

}

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату