2012-03-28 49 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,你可以這樣做:

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

在C++ 03,你每對手動添加使用push_back()作爲@JaredPar中解釋了他的載體答案,或者如果要將其插入到特定的位置中,則可以使用insert()

4

在C++ 11可以使用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; 
}