iterator 선언 및 초기화
// #1
std::vector<int>::iterator pd; // 이터레이터 선언
std::vector<int> scores; // 벡터 선언
pd = scores.begin(); // 이터레이터 pd는 scores의 시작주소를 가리킨다
*pd = 22; // 이터레이터가 가리키고 있는 주소의 값을 22로 설정한다.
++pd; // 인덱스를 다음칸으로 이동한다
// #2
std::vector<int>::iterator pd = scores.begin() // 선언과 동시에 초기화
// #3
auto pd = scores.begin() // C++11 자동 형변환
for문 루프 및 Range 루프
// #1 이터레이터를 활용한 출력 for문
for(pd = score.begin(); pd != scores.end(); pd++)
cout << *pd << endl;
// #2 Range에 기초한 루프(C++11)
for (int& x : scores)
std::cout << x << ' ';
for (auto& : scores)
std::cout << x << ' ';
// #3 for_each 함수 사용 header <algorithm>
void Input(int& A)
{
std::cin >> A;
}
void Output(int& A)
{
std::cout << A << ' ';
}
int main(void)
{
std::vector<int> scores(5);
std::for_each(scores.begin(), scores.end(), Input);
std::for_each(scores.begin(), scores.end(), Output);
}
copy, ostream_iterator, istream_iterator
#include <iterator>
int casts[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
vector<int> dice(10);
// 배열을 벡터로 복사하기
copy(casts, casts + 10, dice.begin());
// ostream 출력 이터레이터
copy(dice.begin(), dice.end(), ostream_iterator<int, char>(cout, " "));
/*or*/
ostream_iterator<int, char> out_iter(cout, " ") // 출력 이터레이터 생성
copy(dice.begin(), dice.end(), out_iter);
// 역방향 이터레이터 암시적 사용
copy(dice.rbegin(), dice.rend(), out_iter);
// 역방향 이터레이터 명시적 사용
vector<int>::reverse_iterator ri;
for(ri = dice.rbegin(); ri != dice.rend(); ++ri)
cout << *ri << ' ';
// istream 입력 이터레이터
copy(istream_iterator<int, char>(cin), istream_iterator<int, char>(), dice.begin());
// back_insert_iterator 이터레이터 == push_back
back_insert_iterator<vector<int> > back_iter(dice); // 원형
copy(words, words + 2, back_insert_iterator<vector<string> >(words));
// insert_iterator 이터레이터 == front_insert_iterator
insert_iterator<vector<int> > insert_iter(dice, dice.begin()); // 원형
copy(words, words + 2, insert_iterator<vector<string> >(words, words.begin()));
'과거 자료' 카테고리의 다른 글
[#3] header <algorithm> - lower_bound, upper_bound (0) | 2022.09.02 |
---|---|
[#12] Binary Search : 이진 탐색 (0) | 2022.09.01 |
[#2] header <algorithm> - sort 함수 (0) | 2022.08.28 |
[#2] STL :: Vector Template Class (0) | 2022.08.25 |
[#1] 표준 템플릿 라이브러리(STD; Standard Template Library) (0) | 2022.08.25 |