
01.11.2009, 17:46
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами:
10386906
Репутация:
599
|
|
Код:
#include <iostream>
#include <vector>
#include <boost/bind.hpp>
#include <boost/foreach.hpp>
#include <functional>
#include <algorithm>
using namespace std;
int main()
{
vector<int> elements;
elements.push_back(1);
elements.push_back(2);
elements.push_back(3);
elements.push_back(4);
elements.push_back(5);
int del_element = 3;
cout << "before remove:";
BOOST_FOREACH(int val, elements) cout << " " << val;
vector <int>::iterator new_end = remove_if(elements.begin(), elements.end(),
boost::bind(std::equal_to<int>(), _1, del_element));
elements.erase (new_end, elements.end( ) );
cout << "\nafter remove: ";
BOOST_FOREACH(int val, elements) cout << " " << val;
cout << '\n';
system("pause");
}
вариант удаления юзая boost и stl(без циклов, описанных вручную, что имхо гораздо нагляднее и быстрее понимается).
Последний раз редактировалось Ra$cal; 01.11.2009 в 17:48..
|
|
|