数组1对整数

时间:2012-03-28 17:52:01

标签: c++ arrays map

我想要一个数组(或向量),并且在每个位置我都想存储几个这样的整数。

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

现在我知道我可以有一张地图清单,但我觉得这太过分了。

有什么想法吗?

4 个答案:

答案 0 :(得分: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 :(得分: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;
}

答案 2 :(得分: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()向量中的特定位置

答案 3 :(得分:1)

使用std :: pair&lt; int,int&gt;作为数组中的元素。