当我编译代码时,出现错误“操作符不匹配!=”(操作数类型为“ int”和“ std :: vector :: iterator”在第8行) 但是当我在第41行使用相同的运算符时,似乎没有问题
#include<iostream>
#include<vector>
using namespace std;
vector<int> Heap;
int Size;
auto k =0;
void max_heapify(vector<int> vect)
{
int vect_size= vect.size()/2;
for(k=vect_size; k != vect.end();k--)//line 8
{
if(vect[(2*k)+1]>vect[k])
{
vect[k]=vect[2*k]+1;
}
else if(vect[2*k]+2>vect[k])
{
vect[k]=vect[2*k]+2;
}
}
}
int main()
{
int items;
cout<<"Enter the size of the heap"<<endl;
cin>>Size;
cout<<"Enter the first element(root) and then the left and the right elements accordingly"<<endl;
for(int i=1;i<=Size;i++)
{
cout<<"Enter the"<<" "<<i<<" "<<"element";
cin>>items;
Heap.push_back(items);
}
for(auto j=Heap.begin();j!=Heap.end();j++)
{
cout<<*j<<endl;
}
max_heapify(Heap);
for(auto j=Heap.begin();j!=Heap.end();j++)//line 41
{
cout<<*j<<endl;
}
}
答案 0 :(得分:2)
您正在将整数与最终迭代器进行比较。我不确定您希望for循环能做什么。我想你也不知道。
大声对自己说话,描述它的作用。它将为您提供帮助。