我有一个函数接受两个向量v1和v2。比较两者中的元素,并且应该从两者中返回通用元素。两个矢量都有5个字符串。我的矢量相交函数有什么问题?
虽然它没有按预期工作。例如,我对V1输入:
dog cat lizard snake pig
和v2有:
cat sheep cow snake fish
结果虽然是:
snake
如何解决它,这样的输出结果如下像以下?
cat snake
我的代码
#include <iostream>
#include <vector>
#include <string>
using namespace std;
const int CAPACITY = 5;
template <typename t>
vector <t> inter(const vector <t> & v1, const vector <t> & v2)
{
vector <t> v3;
for(int i = 0; v1.size(); i++)
{
for(int j= 0; v2.size(); j++)
{
if (v1[i] == v2[j])
{
v3.push_back(v1[i]);
}
}
}
return v3;
}
int main()
{
vector<string> vec1;
string a;
cout << "Enter five stings for vector 1 \n"<< endl;
for(int i = 0; i< CAPACITY; i++)
{
cin >> a;
vec1.push_back(a);
}
vector<string> vec2;
string b;
cout << "Enter five stings for vector 2 \n"<< endl;
for(int i = 0; i< CAPACITY; i++)
{
cin >> b;
vec2.push_back(b);
}
cout<<inter(vec1, vec2);
}
我会说这是不是只是一个* *的选择,但通常较好的选择。 – 2013-02-12 22:50:41