C++ - 向量迭代出错

Pip*_*ppo 1 c++ iteration vector c++11

struct user
{
    vector<size_t> follower;
    vector<size_t> following;
};

int main ()
{
    vector< user > node ( 100 );

    // Pushing back some indices of other nodes in some node[x].follower and node[x].following

    size_t i = 2;

    for ( size_t const& j : node[i].follower )
        node[j].following.erase( remove( node[j].following.begin(), node[j].following.end(), i ), node[j].following.end() );

}
Run Code Online (Sandbox Code Playgroud)

在C++中,我创建了struct user,其中向量followerfollowing存储索引给属于的其他用户vector node.随着最后一个for循环,我想消灭所有的指标i(这是指特定的user i从)vector followerfollowing其他用户; 不幸的是,gcc/4.7.2使用C++ 11,我得到了这个错误:

error: cannot convert 'std::vector<long unsigned int>::iterator {aka __gnu_cxx::__normal_iterator<long unsigned int*, std::vector<long unsigned int> >}' to 'const char*' for argument '1' to 'int remove(const char*)'
Run Code Online (Sandbox Code Playgroud)

我也试图与一个for迭代器的循环,for ( vector<size_t>::iterator it = node[i].follower.begin(); it != node[i].follower.end(); ++it )使用*it循环中的代码,但我仍然获得了类似的错误.

我不知道该怎么办.

mas*_*oud 8

#include <algorithm>
Run Code Online (Sandbox Code Playgroud)

否则,编译器会尝试使用其他remove用于删除文件的函数并接受C样式的字符串(通过包含<iostream>).