编译器给我一个错误,我尝试了所有操作,包括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);
}
答案 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;
}