-
[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에 넣어주면, 순서가 나오게 된다.
