请教《C++ Primer》里3.11节后的一道题目,Exercise 3.25

yujunfei_xy yujunfei_xy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
练习 3.25
已知下面的函数声明 bool is_equal( const int*ia, int ia_size,const vector<int> &ivec );
请实现下列行为如果两个容器大小不同则比较相同大小部分的元素一旦某个元素不相等则返回false 如果所有元素都相等则返回true 请用iterator 迭代访问vector 可以以本节中的例子为模型并且写一个main()函数来测试is_equal()函数.
本人写代码如下:

#include <cstdlib>
#include <iostream>
#include <vector>
#include <iostream>

using namespace std;

bool is_equal( const int* ia, int ia_size, const vector<int> &ivec )
{
vector<int>::iterator it=ivec.begin(); //编译的时候这一句都通不过,请教是怎么回事?
int i=0;

if( ia_size>=ivec.size() )
{
for( ; it!=ivec.end(); ++it, ++i)
if(*it!=ia[i])
return false;
}
else
{
for( ; i<ia_size; ++it, ++i)
if(*it!=ia[i])
return false;
}

return true;
}

int main(int argc, char *argv[])
{
const int ia_size=5;
int ia[ia_size]={0,1,2,3,4};
vector<int> ivec(ia, ia+4);

cout<<is_equal(ia,ia_size,ivec)<<endl; //相等,且数组元素多

ivec.push_back(4);
cout<<is_equal(ia,ia_size,ivec)<<endl; //相等,元素个数一样多

ivec.push_back(5);
cout<<is_equal(ia,ia_size,ivec)<<endl; //相等,且数组元素少

ivec[2]=3;
cout<<is_equal(ia,ia_size,ivec)<<endl; //不等

system("PAUSE");
return EXIT_SUCCESS;
}


另外,我使用的IDE是Dev C++ 5.0
劳烦各位费心了!
不胜感激!
...全文
评论 2
收藏 已收藏
分享
返回顶部
yujunfei_xy
C++ 语言 65,214 成员 250,514 内容