Вход/Регистрация
РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)
вернуться

Менг Ли

Шрифт:

 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;

}

map1.cpp

#include ‹iostream.h›

#include ‹stl.h›

int main {

 typedef map‹char, int, less‹char› › maptype;

 maptype m;

 // Store mappings between roman numerals and decimals.

 m['l'] = 50;

 m['x'] = 20; // Deliberate mistake.

 m['v'] = 5;

 m['i'] = 1;

 cout ‹‹ "m['x'] = " ‹‹ m['x'] ‹‹ endl;

 m['x'] = 10; // Correct mistake.

 cout ‹‹ "m['x'] = " ‹‹ m['x'] ‹‹ endl;

 cout ‹‹ "m['z'] = " ‹‹ m['z'] ‹‹ endl; // Note default value is added.

 cout ‹‹ "m.count('z') = " ‹‹ m.count('z') ‹‹ endl;

 pair‹maptype::iterator, bool› p;

 p = m.insert(pair‹const char, int›('c', 100));

 if (p.second) cout ‹‹ "First insertion successful" ‹‹ endl;

 p = m.insert(pair‹const char, int› ('c', 100));

 if (p.second) cout ‹‹ "Second insertion successful" ‹‹ endl;

 else cout ‹‹ "Existing pair " ‹‹ (*(p.first)).first ‹‹ " -› " ‹‹ (*(p.first)).second ‹‹ endl;

 return 0;

}

mismtch2.cpp

#include ‹stl.h›

#include ‹iostream.h›

#include ‹string.h›

bool str_equal(const char* a_, const char* b_) {

 return ::strcmp(a_, b_) == 0 ? 1: 0;

}

const unsigned size = 5;

char* n1[size] = {"Brett", "Graham", "Jack", "Mike", "Todd"};

int main {

 char* n2[size];

 copy(n1, n1 + 5, n2);

 pair‹char**, char**› result;

 result = mismatch(n1, n1+ size, n2, str_equal);

 if (result.first == n1 + size && result.second == n2 + size)

cout ‹‹ "n1 and n2 are the same" ‹‹ endl;

 else cout ‹‹ "mismatch at index: " ‹‹ (result.first - n1) ‹‹ endl;

 n2[2] = "QED";

 result = mismatch(n1, n1 + size, n2, str_equal);

 if (result.first == n2 + size && result.second == n2 + size)

cout ‹‹ "n1 and n2 are the same" ‹‹ endl;

 else cout ‹‹ "mismatch at index: " ‹‹ (result.first - n1) ‹‹ endl;

 return 0;

}

mismtch1.cpp

#include ‹stl.h›

#include ‹iostream.h›

int main {

 typedef vector‹int› IntVec;

 IntVec v1(10);

 IntVec v2(v1.size);

 iota(v1.begin, v1.end, 0);

 iota(v2.begin, v2.end, 0);

 pair ‹IntVec::iterator, IntVec::iterator› result;

 result = mismatch(v1.begin, v1.end, v2.begin);

 if (result.first = v1.end && result.second == v2.end)

cout ‹‹ "v1 and v2 are the same" ‹‹ endl;

  • Читать дальше
  • 1
  • ...
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: