STL for_each

来源:互联网 发布:淘宝分享在哪里 编辑:程序博客网 时间:2024/05/16 17:51
#include <cstdlib>#include <vector>#include <list>#include <numeric>#include <algorithm>#include <iostream>#include <set>#include <string>#include <assert.h>using namespace std;// STL函数for_each(),sort(),random_shuffle()....using namespace std;struct Book{string title;int price;};void showBook(Book &b){cout << _T("书名: 《") << b.title << _T("》 价格: ") << b.price << endl;};bool compareBook(const Book & b1, const Book & b2){if (b1.price >= b2.price)// 这里只处理了价格排序{return true;}elsereturn false;}int main(){Book books[]={{"C Primer Plus",45}, {"C++ Primer Plus",54}, {"深度探索C++对象模型",40}};vector<Book> mybooks;// 声明一个空容器变量int i;for (i=0; i < sizeof(books)/sizeof(Book); i++){mybooks.push_back(books[i]);// 向容器尾部插入元素};cout << "顺序输出:" << endl;for_each(mybooks.begin(), mybooks.end(), showBook);// 使用STL函数for_each()cout << "排序输出:" << endl;sort(mybooks.begin(), mybooks.end(), compareBook);for_each(mybooks.begin(), mybooks.end(), showBook);// 使用STL函数for_each()cout << "乱序输出:" << endl;random_shuffle(mybooks.begin(), mybooks.end());for_each(mybooks.begin(), mybooks.end(), showBook);// 使用STL函数for_each()return 0;}