본문 바로가기

숙제

C++ 숙제(반복자를 활용하여 각 컨테이너를 순회하기)

STL 컨테이너는 반복자를 통해 거의 동일한 코드로 내부 구현에 의존하지 않고 순회할 수 있다는 것을 배웠습니다.

아래 코드스니펫에 작성된 초기화된 벡터와 맵을 순방향 반복자와 역방향 반복자를 활용해서 출력하는 코드를 작성하세요.

#include <iostream>
#include <vector>
#include <map>

using namespace std;

int main() {
    // 벡터와 맵 데이터 정의
    vector<int> vec = { 10, 20, 30, 40, 50 };
    map<string, int> mp = {
        {"Alice", 90},
        {"Bob", 85},
        {"Charlie", 95}
    };

    // 문제: 아래 부분을 완성하세요

    return 0;
}

#include <iostream>
#include <vector>
#include <map>
#include <algorithm>

using namespace std;

int main()
{
    // 벡터와 맵 데이터 정의
    vector<int> vec = { 10, 20, 30, 40, 50 };
    map<string, int> mp =
    {
        {"Alice", 90},
        {"Bob", 85},
        {"Charlie", 95}
    };

    // 문제: 아래 부분을 완성하세요
    cout << "벡터 순방향 반복자 출력: ";

    sort(vec.begin(), vec.end()); // 순방향으로 정렬

    for (int a : vec) // a에 vec의 왼쪽 값부터 넣어서 출력
    {
        cout << a << " ";
    }

    cout << endl;
    cout << "벡터 역방향 반복자 출력: ";

    sort(vec.rbegin(), vec.rend()); // 역방향으로 정렬

    for (int a : vec) 
    {
        cout << a << " ";
    }

    cout << endl;
    cout << "맵 순방향 반복자 출력" << endl;

    for (auto i = mp.begin(); i != mp.end(); ++i)
    {
        cout << i->first << ", " << i->second << endl;
    }

    cout << "맵 역방향 반복자 출력" << endl;

    for (auto i = mp.rbegin(); i != mp.rend(); ++i)
    {
        cout << i->first << ", " << i->second << endl;
    }
}