gpt4 book ai didi

C++ - vector 迭代错误

转载 作者:太空宇宙 更新时间:2023-11-03 10:30:05 25 4
gpt4 key购买 nike

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 ,其中 vector 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*)'

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

我不知道该怎么办。

最佳答案

#include <algorithm>

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

关于C++ - vector 迭代错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19475374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com