gpt4 book ai didi

c++ - 在没有 reverse 函数的情况下反转字符串 vector

转载 作者:行者123 更新时间:2023-11-27 23:36:30 29 4
gpt4 key购买 nike

目前正在尝试获取名称(字符串) vector 以反向打印。不会用到reverse函数,所以是“手动完成”。到目前为止,就我所拥有的而言, vector 向前打印很好,但是当它向后打印时 - 它能够很好地向后打印前 4 个字符串,然后返回向前打印其余部分。一直坐在那里,只是想不出如何解决它。谢谢。

#include <iostream>
#include <vector>

int main()
{
std::vector<std::string> names { "Jeff", "Jim", "Jerry", "Lisa", "Terry", "Tim", "Tiff"};

std::cout << "This is the vector printing forwards\n";
for (int i = 0; i < names.size(); i++)
{
std::cout << names[i] << std::endl;
}

std::cout << "This is the vector printing backwards\n";
for (int i = 0, j = names.size() - 1; i < names.size(); i++, j--)
{
std::string temp = names[i];
names[i] = names[j];
names[j] = temp;

std::cout << names[i] << std::endl;
}
}

最佳答案

这是因为您要为每个元素交换两次。

对于大小为 4 的 vector :交换操作:

0 3
1 2
2 1
3 0

循环 vector 的一半大小。

for (int i = 0, j = names.size() - 1; i < names.size()/2; i++, j--)
{
std::string temp = names[i];
names[i] = names[j];
names[j] = temp;
}

使用另一个循环打印 vector 。

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

关于c++ - 在没有 reverse 函数的情况下反转字符串 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58852617/

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