1

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

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

未知是什么?

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

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

您能否提供一个示例,说明可以在这种未知数据结构中初始化或填充哪些数据?

谢谢!

4

2 回答 2

3

unknown是一个pair<pair<double, double>, long>

但是,无法确定地猜测什么FFSS意味着什么。显而易见的解释是关于FirstFirstand SecondSecond——但那些不符合它们的使用方式(虽然 FirstFirst 有点道理,但 SecondSecond 确实没有,因为 unknown.second 是 a long,而不是一对)。

排除了这一点后,剩下的就是它们只代表firstand second,所以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);
于 2012-12-06T23:04:07.190 回答
3

在 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
于 2012-12-06T23:08:02.073 回答