在C ++和FF SS运算符中配对数据类型

时间:2012-12-06 22:59:45

标签: c++

我是C ++的新手,想知道这个声明是什么意思:

typedef pair<double,double> pairD;
pair<pairD, long> unknown;

未知的是什么?

更具体地说,这些运营商做了什么:

unknown.FF.FF;
unknown.FF.SS;

您能举例说明可以在这种未知数据结构中初始化或填写的数据吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

unknownpair<pair<double, double>, long>

无法猜测FFSS的含义是什么。明显的解释是关于FirstFirstSecondSecond的东西 - 但那些不适合它们的使用方式(虽然FirstFirst有点理解,SecondSecond确实没有,因为未知.second是long,而非一对。

在排除了这一点后,剩下的就是他们只代表firstsecond,因此unknown.FF.SS相当于unknown.first.secondunknown.FF.FF相当于unknown.first.first

关于如何将数据放入这样的unknown,一种可能性就是:

unknown x = std::make_pair(std::make_pair(1.0, 2.0), 3L);

答案 1 :(得分:2)

在C ++中,std::pair<F, S>有两个成员:

F first;
S second;

因此:

typedef pair<double,double> pairD;
pair<pairD, long> unknown;

扩展为pair<pair<double, double>, long>。给出:

unknown = std::make_pair(std::make_pair(1.2, 2.4), 3);

然后:

std::cout << unknown.first.first << std::endl;
std::cout << unknown.first.second << std::endl;
std::cout << unknown.second << std::endl;

打印:

1.2
2.4
3