vector<string> compactRepresent(){
bool matched = false;
string dif = "";
string currentDif = "";
vector <string> text;
unsigned int i, j;
for (i = 0; i < vec[0].size(); ++i)
{
for (j = 1; j < vec.size(); ++j)
{
if (vec[0][i] != vec[j][i])
{
if (find(currentDif.begin(), currentDif.end(), vec[0][i]) == currentDif.end())
{
currentDif += vec[0][i];
}
if (find(currentDif.begin(), currentDif.end(), vec[j][i]) == currentDif.end())
{
currentDif += vec[j][i];
}
matched = true;
}
}
if (matched)
{
dif += " {" + currentDif + "} ";
currentDif = "";
text.push_back(dif);
matched = false;
}
else
{
dif += vec[0][i];
currentDif = "";
text.push_back(dif);
matched = false;
}
}
cout << dif << endl;
return text;
}
int match (vector<string> patterns){
vector<string> allSegment = compactRepresent();
vector<int> matchLists;
for(string smallPatt : patterns)
{
EDSM edsm(smallPatt);
for(vector<string> segments: allSegment)
{
edsm.searchNextSegment(segments);
edsm.getMatches();
}
matchLists = edsm.getMatches();
}
for(const int m: matchLists)
{
cout << m << endl;
}
return 0;
}
Die erste Methode compactRepresent multiples Sequenz in einer kompakten Art und Weise darstellt, und für das zweite Spiel , versucht es Übereinstimmung mit irgendeiner Methode zu finden.Umstellen von Grunde Zeichenfolge Vektor innerhalb für jede Schleife
Meine Frage ist, wenn ich je Segmente gründliches allsegments am Looping, gibt es den Datentyp Fehler wie folgt:
error: conversion from ‘std::__cxx11::basic_string<char>’ to non-scalar type ‘std::vector<std::__cxx11::basic_string<char> >’ requested
for(vector<string> segments: allSegment)
Danke.
Sollte nicht 'für (Vektor Segmente: allSegment)' 'sein für (string Segmente: allSegment)'? Sie versuchen, einen 'Vektor ' aufzuzählen, als ob er 'vector ' Elemente enthält, was keinen Sinn macht. –
cdhowie
Der Fehler besagt, dass Sie eine 'Zeichenfolge' nicht in eine' Vektor-' konvertieren können. –
chris
das funktionierte: aber ich brauche _segments_ als Vektortyp zu sein, weil ich an die Funktion 'edsm.searchNextSegments (segments)' übergebe, die einen Vektortyp annimmt. @cdhowie – Shukri