2012-03-28 5 views
1

배열 (또는 벡터)을 갖고 싶습니다. 각 위치에 이와 같은 두 개의 정수를 저장하고 싶습니다.1 쌍의 정수 배열

(1, 999) 
(15, 1000) 
(19, 1897) 
etc.. 

지도 목록을 가질 수는 있지만 지나친 것이라고 생각합니다.

아이디어가 있으십니까?

답변

4

여기 pair<int, int>vector<T> 요소로 사용하고 싶습니다. 이것은 당신을 허용한다

std::vector<std::pair<int, int>> vector; 

그것은 typedef에 조금 쓸모있다.

typedef std::pair<int, int> intPair; 
... 
std::vector<std::pair<int, int>> vector; 
vector.push_back(intPair(1, 999)); 
vector.push_back(intPair(15, 1000)); 
1

std :: pair < int, int>을 배열의 요소로 사용하십시오.

2

C++ 11에서이 작업을 수행 할 수 있습니다 : C++ 03에서

std::vector<std::pair<int, int>> pairs = { 
    {1, 999}, 
    {15, 100}, 
    {19, 187}, 
    {29, 177}, 
    //and so on 
}; 

를 수동 @JaredPar가에 설명 된대로 push_back()를 사용하여 벡터에 각 쌍을 추가했습니다 자신의 또는 벡터에 위치에 위치에 삽입하려면 insert()을 사용할 수 있습니다. 11 C++로

4

다음과 같이이 작업을 수행 할 std::tuple를 사용할 수 있습니다

#include <vector> 
#include <tuple> 
#include <iostream> 

int main() 
{ 
    std::vector<std::tuple<int, int> > intPairs; 
    intPairs.emplace_back(1, 999); 
    intPairs.emplace_back(15, 1000); 
    intPairs.emplace_back(19, 1897); 
    std::cout << std::get <0> (intPairs[0]) << std::endl; 
}