vectorの一般的な使い方

7357 ワード

 1 #include <boost/foreach.hpp>

 2 #include <iostream>

 3 #include <vector>

 4 #include <boost/foreach.hpp>

 5 using namespace std;

 6 using namespace boost;

 7 class Test

 8 {

 9 public:

10     Test(int a){

11         age=a;

12     }

13     int age;

14     bool   operator < ( const   Test&   rhs )  const {   // 

15         return   age   <   rhs.age;

16     }

17     bool   operator > ( const   Test&   rhs )  const {   // 

18         return   age   >   rhs.age;

19     }

20 };

21 int main(void)

22 {

23     vector<Test> data;

24     Test t1(1);

25     Test t2(2);

26     Test t3(3);

27     Test t4(4);

28     data.push_back(t1);

29     data.push_back(t2);

30     data.push_back(t3);

31     data.push_back(t4);

32     //1.  

33     for (vector<Test>::iterator it=data.begin(); it!=data.end(); it++) {

34         cout<<it->age<< std::endl;

35     }

36     //2.  

37     std::sort ( data.begin(), data.end(),greater<Test>() ); //lesss  

38     //3. boost 

39     BOOST_FOREACH(const Test& t,data)

40     {

41         cout<<t.age<< std::endl;

42     }

43     //4.  

44     for ( vector<Test>::iterator it = data.begin(); it != data.end(); ) {

45         if ( it->age == 1   || it->age == 3 ) {

46             it = data.erase ( it );

47         } else {

48             it++;

49         }

50     }

51     std::sort ( data.begin(), data.end(),less<Test>() ); //lesss  

52     BOOST_FOREACH(const Test& t,data)

53     {

54         cout<<t.age<< std::endl;

55     }

57     return 0;

58 }