Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 알고리즘
- react
- 운영체제
- Javascript
- 아이폰
- codewars
- 배포
- binary
- ECMAScript6
- git
- 데이터베이스
- ECMAScript2015
- Algorithm
- 정규표현식
- string
- db
- 컴퓨터
- 리액트
- LeetCode
- 반응형 웹
- 기억장치
- 맛집
- 자바스크립트
- 애플
- ES6
- java
- 식물키우기
- c++
- 자바
- styled-components
Archives
- Today
- Total
에브리 저장소
[C++] vector 순회하는 방법 본문
처음 c++로 알고리즘 문제를 풀었을 때 낯설었던 것 중 하나는 vector를 순회해야 할 때였다.
배열처럼 인덱스로 접근하면 편할 텐데, 그것이 안되니 이상하고 어렵게만 느껴졌다.
'그럼 배열을 쓰면 되지'라는 생각이 들지만 배열에는 없는 vector의 메서드들이 필요한 순간들이 있어서 vector를 잘 다루는 것이 중요하다고 생각했다.
까먹지 않기 위해 C++에서 vector를 순회하는 방법을 기록한다.
먼저 vector를 순회하기 위해 iterator를 선언해줘야 한다.
iterator는 반복자라고 부르기도 하는데, STL 컨테이너의 메모리 주소를 가리킬 때 사용된다.
vector의 시작과 끝의 위치를 반환하는 함수인 begin()과 end()를 활용해 아래와 같이 코드를 짜면 vector의 요소들을 순회할 수 있다.
int main()
{
static const int arr[] = {16, 2, 77, 29};
vector<int> vec(arr, arr + sizeof(arr) / sizeof(arr[0]));
vector<int>::iterator ptr;
for (ptr = vec.begin(); ptr != vec.end(); ++ptr)
{
cout << *ptr << " ";
}
//출력 결과 : 16 2 77 29
}
참고
'자료구조 · 알고리즘' 카테고리의 다른 글
[Leetcode - String] Longest substring without repeating characters 풀이 (0) | 2019.11.10 |
---|---|
[Leetcode - Binary] Sum of two integers 풀이 (0) | 2019.11.09 |
[C++] char형 데이터 int형으로 변환하기 (0) | 2019.04.30 |
[알고리즘] 백준 4344 평균은 넘겠지 풀이 (C++) (0) | 2019.04.17 |
[알고리즘] 에라토스테네스의 체(소수 구하는 알고리즘) 자바 구현 (5) | 2019.01.09 |
Comments