我想要一个数组(或向量),并且在每个位置我都想存储几个这样的整数。
(1, 999)
(15, 1000)
(19, 1897)
etc..
现在我知道我可以有一张地图清单,但我觉得这太过分了。
有什么想法吗?
答案 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;作为数组中的元素。