<分区>
我有一个字符串 vector ,我想反转 vector 并打印它,或者简单地说,以相反的顺序打印 vector 。我应该怎么做?
<分区>
我有一个字符串 vector ,我想反转 vector 并打印它,或者简单地说,以相反的顺序打印 vector 。我应该怎么做?
最佳答案
如果你想以相反的顺序打印 vector :
#include <algorithm>
#include <iterator>
#include <iostream>
#include <vector>
#include <string>
std::copy(v.rbegin(), v.rend(),
std::ostream_iterator<std::string>(std::cout, "\n"));
如果要反转 vector ,然后打印它:
std::reverse(v.begin(), v.end());
std::copy(v.begin(), v.end(),
std::ostream_iterator<std::string>(std::cout, "\n"));
如果你想创建 vector 的反向拷贝并打印它:
std::vector<std::string> r(v.rbegin(), v.rend());
std::copy(r.begin(), r.end(),
std::ostream_iterator<std::string>(std::cout, "\n"));
最后,如果您更喜欢编写自己的循环而不是使用 <algorithm>
:
void print_vector_in_reverse(const std::vector<std::string>& v){
int vec_size = v.size();
for (int i=0; i < vec_size; i++){
cout << v.at(vec_size - i - 1) << " ";
}
}
或者,
void print_vector_in_reverse(std::vector<std::string> v) {
std::reverse(v.begin(), v.end());
int vec_size = v.size();
for(int i=0; i < vec_size; i++) {
std::cout << v.at(i) << " ";
}
}
引用资料:
关于c++ - 如何在 C++ 中反转字符串 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11019722/