[c++] 표준 템플릿 라이브러리 (STL) 활용 방법
C++ 표준 라이브러리에는 많은 유용한 데이터 구조와 알고리즘들이 포함되어 있습니다. 이러한 유틸리티들은 템플릿으로 정의되어 있으므로 다양한 유형의 데이터와 함께 사용할 수 있습니다. 이번 글에서는 C++ 표준 템플릿 라이브러리(STL)를 활용하여 간단한 예제를 통해 컨테이너와 알고리즘을 사용하는 방법을 살펴보겠습니다.
컨테이너 활용하기
STL 컨테이너는 데이터를 저장하고 조작하는 기능을 제공합니다. 다양한 유형의 컨테이너가 제공되며, 각각의 특징에 맞게 사용할 수 있습니다.
벡터(Vector)
벡터는 동적 배열을 나타내는 STL 컨테이너입니다. 크기를 동적으로 조절할 수 있으며, 배열과 유사한 인터페이스를 제공합니다.
#include <vector>
#include <iostream>
int main() {
std::vector<int> vec;
vec.push_back(10);
vec.push_back(20);
vec.push_back(30);
for (int i : vec) {
std::cout << i << " ";
}
return 0;
}
맵(Map)
맵은 키-값 쌍을 저장하는 STL 컨테이너입니다. 특정한 키를 통해 값을 검색할 수 있으며, 중복된 키를 허용하지 않습니다.
#include <map>
#include <string>
#include <iostream>
int main() {
std::map<std::string, int> ages;
ages["Alice"] = 25;
ages["Bob"] = 30;
ages["Carol"] = 28;
std::cout << "Alice's age: " << ages["Alice"] << std::endl;
return 0;
}
알고리즘 활용하기
STL 알고리즘은 이미 효율적으로 구현된 여러 가지 알고리즘을 제공합니다. 이러한 알고리즘들을 활용하여 데이터를 정렬하거나 검색하는 등의 작업을 수행할 수 있습니다.
정렬(Sort)
정렬 알고리즘은 데이터를 정해진 순서로 재배열하는데 사용됩니다.
#include <algorithm>
#include <vector>
#include <iostream>
int main() {
std::vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6};
std::sort(vec.begin(), vec.end());
for (int i : vec) {
std::cout << i << " ";
}
return 0;
}
검색(Search)
검색 알고리즘은 특정 조건을 만족하는 요소를 찾는 데 사용됩니다.
#include <algorithm>
#include <vector>
#include <iostream>
int main() {
std::vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6};
auto it = std::find(vec.begin(), vec.end(), 5);
if (it != vec.end()) {
std::cout << "Found at index " << std::distance(vec.begin(), it);
} else {
std::cout << "Not found";
}
return 0;
}
위의 예제 코드들을 통해 C++ 표준 라이브러리(STL)를 사용하는 기초적인 방법에 대해 알아보았습니다. STL은 많은 다른 유용한 기능과 알고리즘이 있으므로, 자세한 내용은 C++ STL 관련 문서를 참고하시기 바랍니다.
참고 자료
- cppreference.com - C++ 관련 문서 및 레퍼런스를 참고할 수 있는 사이트입니다.
- “Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library” by Scott Meyers - STL 사용에 관한 다양한 팁과 방법을 소개하고 있는 책입니다.