文字列のベクトルがあり、ベクトルを逆にして出力したい、または単に逆の順序でベクトルを出力したい。どうすればいいですか?
質問する
6585 次
1 に答える
13
ベクトルを逆の順序で印刷する場合:
#include <algorithm>
#include <iterator>
#include <iostream>
#include <vector>
#include <string>
std::copy(v.rbegin(), v.rend(),
std::ostream_iterator<std::string>(std::cout, "\n"));
ベクトルを逆にしてから印刷したい場合:
std::reverse(v.begin(), v.end());
std::copy(v.begin(), v.end(),
std::ostream_iterator<std::string>(std::cout, "\n"));
ベクトルの反転コピーを作成して印刷する場合:
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) << " ";
}
}
参考文献:
于 2012-06-13T17:00:18.173 に答える