请教《C++ Primer》里3.11节后的一道题目,Exercise 3.25
练习 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
劳烦各位费心了!
不胜感激!
已知下面的函数声明 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
劳烦各位费心了!
不胜感激!
...全文
相关推荐
C++ primer 第五版习题答案(完整版)
C++Primer第五版习题答案+详解(完整版) C++Primer第五版习题答案+详解(完整版)
Cpp-Primer_Exercise:C ++ Primer第5版的练习
该文件夹包含了我所做的C ++ Primer书中的所有练习。
C++ Primer Plus Programming Exercise.zip
C++ Primer Plus(第6版)中文版的编程练习的代码。
C++ Primer英文第五版 Exercise习题答案对应代码
因为我之前上传的C++ Primer英文第五版 Exercise习题答案上代码链接挂掉了,所以补上这个,以免诸位搜不到
C++ Primer英文第五版 Exercise习题答案
C++ Primer英文第五版 书上的Exercise答案


