给出上半部分在C++中创建回文的好方法

Yit*_*tuo 0 c++ string reverse palindrome

考虑到上半年,有没有一种简单的方法可以在C++中创建回文?例如给定"abcdef",我想返回"abcdeffedcba",同时保持输入的前半部分不变?

我知道你可以这样做,但有更好的方法在一条线上做到吗?在Java中,reverse()返回一个值,因此您可以在一行中完成.

string createPalindrome(string & half)
{
    string temp = half;
    reverse(temp.begin(), temp.end());
    return half + temp;
}
Run Code Online (Sandbox Code Playgroud)

Pau*_*zie 7

如果您想在一行中执行此操作,请执行以下操作:

#include <string>
#include <iostream>

std::string createPalindrome(const std::string & half)
{
    return half + std::string(half.rbegin(), half.rend());
}

int main()
{
    std::cout << createPalindrome("abcdef");
}    
Run Code Online (Sandbox Code Playgroud)

实例

请注意,这基本上采用字符串并将其与自身的反转连接起来.

half.rbegin()half.rend()被反向迭代器,所以临时反向字符串使用这些迭代器构成.