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() );
}
C++ で を作成し、 に属する他のユーザーへのstruct user
ベクトルfollower
とストア インデックスを作成しました。最後のループで、他のユーザーのおよびからすべてのインデックス(特定の を参照する)を破棄したいと思います。残念ながら、C++11 を使用すると、次のエラーが発生します。following
vector node
for
i
user i
vector follower
following
gcc/4.7.2
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*)'
ループのコードで使用してfor
、イテレータのループでも試しましたが、それでも同様のエラーが発生します。for ( vector<size_t>::iterator it = node[i].follower.begin(); it != node[i].follower.end(); ++it )
*it
どうすればいいのかわからない。