gpt4 book ai didi

c++ - 向后打印字符串 vector

转载 作者:行者123 更新时间:2023-11-28 00:45:24 27 4
gpt4 key购买 nike

我正在尝试编写一个程序来接收用户输入,将其存储到一个字符串 vector 中,然后根据函数打印出该 vector 。

对于这个函数“display_backwards”,它应该以类似镜像的图像显示用户的输入。

我在编写代码时遇到问题,它给我错误,我不明白为什么

这是我的代码:

void asci_art::display_backwards(vector<string> art)
{
char swap[100];
cout << "Your Artwork in mirrored image" << endl;
cout << "=============================" <<endl;

for (unsigned int i=0; i < art.size(); i++)
{
for(int j=0; j < art[i].size(); j++)
{

swap[j] = art[i].end()-j;
art[i].begin()+j = swap[j];
}
}

for(int k= 0; k < swap.size(); k++)
{
cout << swap[k];
}
cout << endl;

函数写在类中

vector art 有用户输入。对于 vector 的每个元素,它存储一行字符串。我想访问元素的字符串并交换字符串的字母,我相信这会创建一个镜像。

我遇到编译错误,例如“无法将 _normal iterator> 转换为 char”,我不明白为什么,因为我正在处理相同类型的 char。“没有‘=’这样的操作”??

我不明白为什么。有人可以解释吗?可能我的逻辑有问题,谁能帮我重写一下?

我希望它垂直反射/镜像。

最佳答案

使用std::reverse反转 vector 中的每个字符串。

void asci_art::display_backwards(vector<string> art)
{
for( auto&& a : art ) {
std::reverse(a.begin(), a.end()); // reverses each string
std::cout << a << std::endl;
}
}

或者,如果您想反转 vector 中字符串的顺序,稍微不同的 reverse 调用就可以达到目的。

void asci_art::display_backwards(vector<string> art)
{
std::reverse( art.begin(), art.end() ); // reverses order of strings in vector
for( auto const& a : art ) {
std::cout << a << std::endl;
}
}

关于c++ - 向后打印字符串 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16449109/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com