ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [c++] vector, map 라이브러리 사용법
    C++/C++ 알고리즘 2023. 12. 9. 13:25

    vector와 map은 모두 정렬을 쉽고 유용하게 해주는 라이브러리이다. 특히 map은 기존의 배열변수에서 인풋값이 정수였던 한계를 넘어, 문자를 인풋값으로 활용할수도 있다. 

    #include "pch.h"
    #include <vector>
    #include <map>
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    	vector<string> products = { "alpa", "beta", "ceta", "delta" };
    	vector<string> changes = { "beta", "ceta" };
    
    	vector<string> answer;
    	map<string, int> m;
    	
        //map 데이터 할당
    	for (int j = 0; j < products.size(); j++) {
    		m[products[j]] = j;
    	}
    	
        // changes 값 읽기 -> map 데이터 변경, Products 데이터 변경
    	for (int i = 0; i < changes.size(); i++) {
    		int a = m[changes[i]];
    		m[changes[i]]--;
    		m[products[a - 1]]++;
    
    		string tmp = products[a];
    		products[a] = products[a - 1];
    		products[a - 1] = tmp;
    
    	}
    
    	for (const std::string& product : products) {
    		std::cout << product << std::endl;
    	}
    }

     

    결과:

     

     

     

    Products는 제품이름의 나열이며, Changes는 순차적으로 제품을 앞으로 옮기는 것을 의미한다. 해당 코드는 두 배열을 입력받아, 결과물을 도출하는 작업을 수행한다. map<string, int> 클래스의 경우, string값을 넣으면 int값을 도출한다. 따라서 Changes 배열에서 string 값을 읽어와서, 그대로 map에 넣어주면, 순서가 나오게 된다.

     

     

     

     

Designed by Tistory.