我是 C++ 新手,想知道这个声明是什么意思:
typedef pair<double,double> pairD;
pair<pairD, long> unknown;
未知是什么?
更具体地说,这些运营商做了什么:
unknown.FF.FF;
unknown.FF.SS;
您能否提供一个示例,说明可以在这种未知数据结构中初始化或填充哪些数据?
谢谢!
我是 C++ 新手,想知道这个声明是什么意思:
typedef pair<double,double> pairD;
pair<pairD, long> unknown;
未知是什么?
更具体地说,这些运营商做了什么:
unknown.FF.FF;
unknown.FF.SS;
您能否提供一个示例,说明可以在这种未知数据结构中初始化或填充哪些数据?
谢谢!
unknown
是一个pair<pair<double, double>, long>
。
但是,无法确定地猜测什么FF
和SS
意味着什么。显而易见的解释是关于FirstFirst
and SecondSecond
——但那些不符合它们的使用方式(虽然 FirstFirst 有点道理,但 SecondSecond 确实没有,因为 unknown.second 是 a long
,而不是一对)。
排除了这一点后,剩下的就是它们只代表first
and second
,所以unknown.FF.SS
等价于unknown.first.second
和unknown.FF.FF
等价于unknown.first.first
。
至于如何将数据放入unknown
这样的文件中,一种可能性是:
unknown x = std::make_pair(std::make_pair(1.0, 2.0), 3L);
在 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