我有一个接受两个向量 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);
}