回文过滤器,功能完美,但main()无法编译

时间:2019-05-06 22:57:01

标签: c++ palindrome

编译器给我一个错误,我尝试了所有操作,包括for循环,但都无济于事,也许有人有主意? 这些功能可以正常工作,但是main()部分不

#include <iostream>
#include<vector>

using namespace std;


bool IsPalindrom(string s) {
    for (size_t i = 0; i < s.size() / 2; ++i) {
        if (s[i] != s[s.size() - i - 1]) {
            return false;
        }
    }
    return true;
}

vector <string> PalindromFilter(vector<string> words, int min_Length){
 vector<string> result;
 for(auto s : words){
    if (s.size() >= min_Length && IsPalindrom(s)){
        result.push_back(s);
    }
 }
 return result;

}

int main(){


cout << PalindromFilter({"abacaba", "aba"}, 4);
}

1 个答案:

答案 0 :(得分:0)

请注意PalindromFilter()函数的返回类型。它返回字符串向量。您无法使用cout直接打印矢量的内容。

相反,您可以尝试存储返回的值并使用显示功能。代码供您参考:

// Function to display elements of the vector of strings
void Display(const vector<string> & vec)
{
    for (int i = 0; i < vec.size(); i++)
    {
        // Note that for printing a string you need to
        // use c_str() 
        cout << vec[i].c_str() << endl;
    }
}

在Main函数中:

int main() 
{
    vector<string> output = PalindromFilter({ "abacaba", "aba" }, 4);
    Display(output);
    return 0;
}