关于vector中的迭代问题
#include <vector>
#include <iostream>
using namespace std;
//bool is_equal (const int* ia,int ia_size,const vector<int>& ivec) //error
bool is_equal (const int* ia,int ia_size,vector<int>& ivec)
{
int ivec_size = ivec.size();
int size = (ia_size<ivec_size)?ia_size:ivec_size;
int i=0;
vector<int>::iterator iter = ivec.begin();
for(; i<size; i++,iter++)
{
if(*iter != ia[i])
{
return false;
}
}
return true;
}
int main()
{
int ia[]={0,0,0,0,1};
vector<int> ivec(5,0);
cout<<is_equal(ia,5,ivec);
return 0;
}
如果讲is_equal声明换成注释掉的函数原型的话出错
错误原因:
vector<int>::iterator iter = ivec.begin(); ----不能将const int* 转化成int*
请问如果使用注释的函数原型的话,程序该怎么修改?
另外一个小问题,包含vector头文件的时候一定要使用using namespace std;吗?
什么时候需要?什么时候可以省略?
谢谢!

