私は配列(またはベクトル)を持ちたいと思います。それぞれの位置に、このような2つの整数を格納したいと思います。1つの整数の2つの配列
(1, 999)
(15, 1000)
(19, 1897)
etc..
は今、私はマップのリストを持つことができます知っているが、私はそれはやり過ぎであると感じています。
アイデア?
私は配列(またはベクトル)を持ちたいと思います。それぞれの位置に、このような2つの整数を格納したいと思います。1つの整数の2つの配列
(1, 999)
(15, 1000)
(19, 1897)
etc..
は今、私はマップのリストを持つことができます知っているが、私はそれはやり過ぎであると感じています。
アイデア?
ここで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));
std :: pair < int、int>を配列の要素として使用します。
、あなたがこれを行うことができます: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++で
次のようにあなたがこれを行うには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;
}