Здравствуйте, dima11221122, Вы писали:
D>#include "stdafx.h"
D>#include <iostream>
D>D>#include <list>
D>#include <algorithm>
D>#include <iterator>
D>.....
D>struct computer1
D>{
D> int comp_number;
D> int comp_mark;
D>};
D>struct connection1
D>{
D> int side1;
D> int side2;
D> int conn_mark;
D>};
D>bool cond_comp(list<computer1>::iterator x)
D>{
D> return (x->comp_mark==1);
D>}
D>bool cond_conn(list<connection1>::iterator y)
D>{
D> return (y->conn_mark==1);
D>}
D>void delete1()
D>{
D> list<computer1>::iterator x;
D> x=remove_if(computers.begin(), computers.end(), cond_comp);
D> computers.erase(x, computers.end());
D> list<connection1>::iterator y;
D> y=remove_if(connections.begin(), connections.end(), cond_conn);
D> connections.erase(y, connections.end());
D>}
D>
D>при компиляции указывает на ошибки в библиотеках. текст
D>[code]
>>c:\program files\microsoft visual studio 9.0\vc\include\algorithm(87) : error C2664: 'bool (std::list<_Ty>::_Iterator<_Secure_validation>)' : cannot convert parameter 1 from 'computer1' to 'std::list<_Ty>::_Iterator<_Secure_validation>'
Это вам сказано про cond_comp и cond_conn которые вы указываете в качестве параметров шаблонной функции remove_if
Компилятор попытался собрать шаблон с данными параметрами и у него это не получилось о чем он вам и сказал.. (cannot convert parameter 1 from 'computer1' to 'std::list<_Ty>::_Iterator<_Secure_validation>')
т.е. вот это bool cond_comp( list<computer1>::iterator x) нада заменить на это — bool cond_comp(computer1 x)
Кстати в MSDN помоему есть примеры ко всем алгоритмам..