1) Прежде всего: приведите один скомпилируемый пример.
Ваш код, размещенный выше, проблематичен, так как rVec и rowVector были взаимозаменяемы (вы бы видели это сами, если бы вы разместили реальный код).1003 * 2) Вы используете неправильное удаление.Это должно быть remove_if
3) Функтор обычно имеет константное значение
4) Оператор () должен получить объект типа aMap (поскольку это то, что находится в вашем векторе), а нессылка на вектор.
5) Не поленитесь добавить std :: перед объектами в стандартном пространстве имен.
вместо использования using namespace std;
#include <map>
#include <vector>
#include <string>
#include <algorithm>
typedef std::map<std::string, std::string> aMap;
typedef std::vector<aMap> rVec;
rVec rows;
struct remove_it
{
// Corrected type here
bool operator() (aMap const& row) const // const here
{
// Validation code here!
return true;
}
};
int main()
{
// _if herer
rVec::iterator it = std::remove_if(rows.begin(), rows.end(), remove_it());
rows.erase(it, rows.end());
}