@Avazart
7569 / 5554 / 326
Регистрация: 10.12.2010
Сообщений: 24,857
|
07.01.2013, 21:52
|
|
Приблизительно так ( код не проверял )
C++ | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| #include <iostream>
#include <vector>
#include <utility>
#include <algorithm>
using namespace std;
//-------------------------------------
class Task
{
public:
unsigned pageNum;
};
//-------------------------------------
template<typename T1,typename T2>
struct killer: public binary_function<T1, T2, bool>
{
bool operator()(T1 a, T2 howMuch)const
{
return a.pageNum>howMuch;
}
};
//-------------------------------------
int main()
{
std::vector<Task> sourse;
const unsigned howMuch = 0;
remove_if( sourse.begin(), sourse.end(), bind2nd( killer<Task,unsigned>(),howMuch ) );
return 0;
}
//-------------------------------------- |
|
Добавлено через 25 минут
Ну или так
C++ | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| #include <iostream>
#include <string>
#include <vector>
#include <utility>
#include <algorithm>
using namespace std;
//-------------------------------------
class Task
{
public:
unsigned pageNum;
Task(unsigned Num=0):pageNum(Num){};
};
//-------------------------------------
bool cmp(Task a,unsigned val)
{
return a.pageNum>val;
}
//-------------------------------------
int main()
{
std::vector<Task> sourse;
for(size_t i=0; i<5 ;i++) sourse.push_back(Task(i) );
for(size_t i=0;i<sourse.size();i++) { cout<<sourse[i].pageNum<<"\t"; }
cout<<endl;
unsigned howMuch = 2;
sourse.erase(remove_if( sourse.begin(), sourse.end(), bind2nd( std::ptr_fun(cmp),howMuch)),sourse.end() );
for(size_t i=0;i<sourse.size();i++) { cout<<sourse[i].pageNum<<"\t"; }
cout<<endl;
return 0;
}
//-------------------------------------- |
|
1
|