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;

 else cout ‹‹ 'mismatch at index: ' ‹‹ (result.first - v1.begin()) ‹‹ endl;

 v2[v2.size()/2] = 42;

 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;

 else cout ‹‹ 'mismatch at index: ' ‹‹ (result.first - v1.begin()) ‹‹ endl;

return 0;

}

mmap2.cpp

#include ‹iostream.h›

#include ‹stl.h›

typedef multimap‹int, char, less‹int› › mmap;

typedef pair‹const int, char› pair_type;

pair_type p1(3, 'c');

pair_type p2(6, 'f');

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

0

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

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