IT story

C ++ 벡터를 어떻게 되돌 립니까?

hot-time 2020. 7. 6. 07:13
반응형

C ++ 벡터를 어떻게 되돌 립니까?


C ++에 벡터를 뒤집는 내장 벡터 함수가 있습니까?

아니면 수동으로해야합니까?


함수있다 std::reverse에서 algorithm이러한 목적을 위해 헤더.

#include <vector>
#include <algorithm>

int main() {
  std::vector<int> a;
  std::reverse(a.begin(), a.end());
  return 0;
}

모든 컨테이너는 및로 콘텐츠를 반대로 수 있습니다 . 이 두 함수는 소위 콜백 iterator를 리턴 하는데, 일반적인 iter 처럼 사용할 수 있지만 컨테이너가 실제로 뒤집힌 것처럼 보일 것입니다.rbegin()rend()

#include <vector>
#include <iostream>

template<class InIt>
void print_range(InIt first, InIt last, char const* delim = "\n"){
  --last;
  for(; first != last; ++first){
    std::cout << *first << delim;
  }
  std::cout << *first;
}

int main(){
  int a[] = { 1, 2, 3, 4, 5 };
  std::vector<int> v(a, a+5);
  print_range(v.begin(), v.end(), "->");
  std::cout << "\n=============\n";
  print_range(v.rbegin(), v.rend(), "<-");
}

Ideone에 대한 실제 예 . 산출:

1->2->3->4->5
=============
5<-4<-3<-2<-1

당신이 사용할 수있는 std::reverse다음과 같은

std::reverse(str.begin(), str.end());

std::list대신에 사용할 수도 있습니다 std::vector. 역전 요소에 대한 list내장 기능 목록 : : 반전이 있습니다.

참고 URL : https://stackoverflow.com/questions/8877448/how-do-i-reverse-ac-vector

반응형