gpt4 book ai didi

c++ - 采用 vector 参数的函数模板回文

转载 作者:行者123 更新时间:2023-11-30 00:51:57 26 4
gpt4 key购买 nike

我开始学习 C++ 和 STL。 我有一个问题:

写一个函数模板palindrome,接受一个 vector 参数并返回true或false来检查 vector 是否是回文(12321是回文,1234不是回文)

这是我的代码:

template<class T>
bool palindrome(vector<T> & v)
{
int i,j;
for( i=0,j=v.size();i<v.size()/2;i++,j--)
{
if(v[i]!=v[j])
return false;
}

return true;
}

void main()
{
int ar[]={1,2,3,2,1};
vector<int> v(ar,ar+5);
cout<<palindrome(v);
}

代码无效。我知道它有一些错误,但我不知道如何修复它们。请帮我!非常感谢!

最佳答案

您的索引不正确。在你的循环 j=v.size() 中,然后你访问 v[j]。但最后一个元素位于索引 v.size() - 1。您的程序行为将是未定义的。

更改为 j=v.size() -1

关于c++ - 采用 vector 参数的函数模板回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20264713/

26 4 0