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,其中向量follower和following存储索引给属于的其他用户vector node.随着最后一个for循环,我想消灭所有的指标i(这是指特定的user i从)vector follower和following其他用户; 不幸的是,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循环中的代码,但我仍然获得了类似的错误.
我不知道该怎么办.
#include <algorithm>
Run Code Online (Sandbox Code Playgroud)
否则,编译器会尝试使用其他remove用于删除文件的函数并接受C样式的字符串(通过包含<iostream>).