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
和following
存儲索引以一些其他用戶屬於vector node
。在最後的for
循環中,我想銷燬來自其他用戶的vector follower
和following
的所有索引i
(其指代具體的user i
);不幸,用gcc/4.7.2
,用C++ 11,I得到這樣的錯誤:C++ - 錯誤與矢量
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
,但我仍然獲得類似錯誤。
我不知道該怎麼做。
您發佈的代碼[compiles fine](http://coliru.stacked-crooked.com/a/48078131585571de)。你是否包含'algorithm'?嘗試刪除'使用命名空間標準;'顯式限定爲'標準::' - 你可能有一些其他'刪除'可見。 –
我知道這是一個愚蠢的錯誤... – Pippo