J'ai une fonction qui accepte deux vecteurs v1 et v2. Compare les éléments dans les deux et est censé renvoyer les éléments communs des deux. Les deux vecteurs ont 5 chaînes.Quel est le problème avec ma fonction d'intersection vectorielle?
Cela ne fonctionne pas comme prévu, cependant. Par exemple, je saisir pour v1:
dog cat lizard snake pig
et v2 a:
cat sheep cow snake fish
Le résultat est que:
snake
Comment puis-je résoudre ce problème afin que la sortie ressemblerait à quelque chose comme le suivre?
cat snake
mon code
#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);
}
Je dirais que ce n'est pas seulement * une * option, mais normalement l'option préférée. –