# 函数摸板问题！

tjj5203 2008-04-08 01:58:35
template<typename T>
bool f(vector<T> v1,vector<T> v2)
{
vector<T>::iterator iter1=v1.begin();
vector<T>::iterator iter2=v2.begin();
while(iter1!=v1.end()||iter2!=v2.end())
{
if(*iter1!=*iter2)return false;
++iter1;
++iter2;
}
return true;
}

...全文
182 10 打赏 收藏 转发到动态 举报

10 条回复

fallening 2008-04-08
• 打赏
• 举报

[Code=C/C++]
#include <iostream>
#include <vector>
using namespace std;

template <typename T>
bool f( const vector <T>& v1, const vector <T>& v2 )
{
const unsigned int size1 = v1.size();
const unsigned int size2 = v2.size();

if ( size1 != size2 )
return false;

for ( unsigned int i = 0; i < size1; ++i )
{
if ( v1[i] != v2[i] )
return false;
}

return true;
}

int main() {

int a1[] = {1, 2, 3, 4, 5, 6};

vector<int> v1(a1, a1 + 4);
vector<int> v2(a1, a1 + 4);
vector<int> v3(a1, a1 + 3);

if (f(v1, v2)) {
cout<<"v1 = v2"<<endl;
} else {
cout<<"v1 != v2"<<endl;
}

if (f(v1, v3)) {
cout<<"v1 = v3"<<endl;
} else {
cout<<"v1 != v3"<<endl;
}
return 0;
}

[/Code]

\$g++ -o ss ss.cc -Wall
\$ ./ss
v1 = v2
v1 != v3
qmm161 2008-04-08
• 打赏
• 举报

tjj5203 2008-04-08
• 打赏
• 举报

DEVCPP编译通不过，VS2005过了，奇怪！
taodm 2008-04-08
• 打赏
• 举报

• 打赏
• 举报

``````
#include "iostream"
#include "vector"
using namespace std;

template <typename T>
bool f(vector <T> v1,vector <T> v2)
{
vector <T>::iterator iter1=v1.begin();
vector <T>::iterator iter2=v2.begin();
while(iter1!=v1.end() || iter2!=v2.end())
{
if(*iter1!=*iter2)
return false;
++iter1;
++iter2;
}
return true;
}

int main() {

int a1[] = {1, 2, 3, 4};
int a2[] = {3, 4, 5, 6};

vector<int> v1(a1, a1 + 4);
vector<int> v2(a2, a2 + 4);

if (f(v1, v2)) {
cout<<"same"<<endl;
} else {
cout<<"Different"<<endl;
}

return 0;
}
``````
cx36001390 2008-04-08
• 打赏
• 举报

while(iter1!=v1.end() ¦ ¦iter2!=v2.end()) 的|| 换成&&

tjj5203 2008-04-08
• 打赏
• 举报

to 1楼，我是编译了不行才来问的！！
ttkk_2007 2008-04-08
• 打赏
• 举报

template <typename T>
bool f(vector <T> v1,vector <T> v2)
{
vector <T>::iterator iter1=v1.begin();
vector <T>::iterator iter2=v2.begin();
while(iter1!=v1.end() ¦ ¦iter2!=v2.end())
{
if(*iter1!=*iter2)return false;
++iter1;
++iter2;
}
return true;
}
========================

``````
template <typename Container>
bool f(Container v1,Container v2)
{
Container::iterator iter1=v1.begin();
Container::iterator iter2=v2.begin();
while(iter1!=v1.end() ¦ ¦iter2!=v2.end())
{
if(*iter1!=*iter2)return false;
++iter1;
++iter2;
}
return true;
}

``````
pomelowu 2008-04-08
• 打赏
• 举报

#include <vector>
using namespace std;

template <typename T>
bool f(vector <T> v1,vector <T> v2)
{
vector <T>::iterator iter1=v1.begin();
vector <T>::iterator iter2=v2.begin();
while(iter1!=v1.end() && iter2!=v2.end())
{
if(*iter1!=*iter2)return false;
++iter1;
++iter2;
}
return true;
}
taodm 2008-04-08
• 打赏
• 举报

64,756

c++ 技术论坛（原bbs）

• 近7日
• 近30日
• 至今

1. 请不要发布与C++技术无关的贴子
2. 请不要发布与技术无关的招聘、广告的帖子
3. 请尽可能的描述清楚你的问题，如果涉及到代码请尽可能的格式化一下