이 튜토리얼에서는 C++에서 벡터(vector)의 한 칸에 데이터 세 개를 묶어 저장하는 방법, 즉 데이터 트리플렛(triplet)을 저장하는 프로그램을 살펴보겠습니다.
벡터의 한 요소에 세 개의 값을 함께 저장하려면 먼저 사용자 정의 구조체(struct)를 선언한 뒤, 해당 구조체 타입으로 벡터를 생성하면 됩니다. 이렇게 하면 서로 연관된 여러 데이터를 하나의 단위로 깔끔하게 관리할 수 있습니다.
예제 코드
#include<bits/stdc++.h>
using namespace std;
struct Test{
int x, y, z;
};
int main(){
//사용자 정의 구조체 타입의 벡터 생성
vector<Test> myvec;
//값 삽입
myvec.push_back({2, 31, 102});
myvec.push_back({5, 23, 114});
myvec.push_back({9, 10, 158});
int s = myvec.size();
for (int i=0;i<s;i++){
cout << myvec[i].x << ", " << myvec[i].y << ", " << myvec[i].z << endl;
}
return 0;
}실행 결과
2, 31, 102 5, 23, 114 9, 10, 158
코드 설명
struct Test는 정수형 멤버 변수 x, y, z를 가지는 구조체입니다. 이 구조체를 요소 타입으로 하는 vector<Test>를 선언하면 벡터의 각 칸이 세 개의 정수를 담을 수 있게 됩니다. push_back() 호출 시 중괄호 초기화 문법인 {2, 31, 102}를 사용하면 세 값이 모두 포함된 구조체를 한 번에 벡터에 추가할 수 있습니다.
마지막으로 반복문을 통해 벡터의 크기(size())만큼 순회하면서 각 요소의 x, y, z 멤버에 점(.) 연산자로 접근하여 값을 출력합니다. 이 패턴은 좌표, RGB 색상 값처럼 세 개의 값이 항상 함께 다니는 데이터를 다룰 때 특히 유용합니다.