2012-03-28 7 views
1

私は配列(またはベクトル)を持ちたいと思います。それぞれの位置に、このような2つの整数を格納したいと思います。1つの整数の2つの配列

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

は今、私はマップのリストを持つことができます知っているが、私はそれはやり過ぎであると感じています。

アイデア?

答えて

4

ここでpair<int, int>vector<T>要素として使用したいと思います。これはあなたに許します

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

これはもうtypedefで使えます。 C++ 11では

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++ 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; 
} 
関連する問題