incl2.cpp

#include ‹stl.h›

#include ‹iostream.h›

#include ‹string.h›

bool compare_strings(const char* s1_, const char* s2_) {

 return ::strcmp(s1_, s2_) ‹ 0 ? 1: 0;

}

char* names[] = {'Todd', 'Mike', 'Graham', 'Jack', 'Brett'};

int main() {

 const unsigned nameSize = sizeof(names)/sizeof(names[0]);

 vector‹char*› v1(nameSize);

 for (int i = 0; i ‹ v1.size(); i++) {

  v1[i] = names[i];

 }

 vector‹char*› v2(2);

 v2[0] = 'foo';

 v2[1] = 'bar';

 sort(v1.begin(), v1.end(), compare_strings);

 sort(v2.begin(), v2.end(), compare_strings);

 bool inc = includes(v1.begin(), v1.end(), v2.begin(), v2.end(), compare_strings);

 if (inc) cout ‹‹ 'v1 includes v2' ‹‹ endl;

 else cout ‹‹ 'v1 does not include v2' ‹‹ endl;

 v2[0] = 'Brett';

 v2[1] = 'Todd';

 inc = includes(v1.begin(), v1.end(), v2.begin(), v2.end(), compare_strings);

 if (inc) cout ‹‹ 'v1 includes v2' ‹‹ endl;

 else cout ‹‹ 'v1 does not include v2' ‹‹ endl;

 return 0;

}

search1.cpp

#include ‹stl.h›

#include ‹iostream.h›

int main() {

 typedef vector‹int› IntVec;

 IntVec v1(10);

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

 IntVec v2(3);

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

 ostream_iterator‹int› iter(cout, ' ');

 cout ‹‹ 'v1: ';

 copy(v1.begin(), v1.end(), iter);

 cout ‹‹ endl;

 cout ‹‹ 'v2: ';

 copy(v2.begin(), v2.end(), iter);

 cout ‹‹ endl;

 IntVec::iterator location;

 location = search(v1.begin(), v1.end(), v2.begin(), v2.end());

 if (location == v1.end()) cout ‹‹ 'v2 not contained in v1' ‹‹ endl;

 else cout ‹‹ 'Found v2 in v1 at offset: ' ‹‹ location - v1.begin() ‹‹ endl;

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

 cout ‹‹ 'v1: ';

 copy(v1.begin(), v1.end(), iter);

 cout ‹‹ endl;

 cout ‹‹ 'v2: ';

 copy(v2.begin(), v2.end(), iter);

 cout ‹‹ endl;

 location = search(v1.begin(), v1.end(), v2.begin(), v2.end());

 if (location == v1.end()) cout ‹‹ 'v2 not contained in v1' ‹‹ endl;

 else cout ‹‹ 'Found v2 in v1 at offset: ' ‹‹ location - v1.begin() ‹‹ endl;

return 0;

}

istmit2.cpp

#include ‹iostream.h›

#include ‹fstream.h›

#include ‹stl.h›

typedef vector‹char› Line;

void printLine(const Line* line_)  {

 vector‹char›::const_iterator i;

 for (i = line_-›begin(); i!= line_-›end(); i++) cout ‹‹ *i;

 cout ‹‹ endl;

}

int main() {

 Line buffer;

 vector‹Line*› lines;

 ifstream s('data.txt');

 s.unsetf(ios::skipws); // Disable white-space skipping.

 istream_iterator‹char, ptrdiff_t› it1(s); // Position at start of file.

 istream_iterator‹char, ptrdiff_t› it2; // Serves as 'past-the-end' marker.

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

0

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

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