我是C ++的新手,想知道这个声明是什么意思:
typedef pair<double,double> pairD;
pair<pairD, long> unknown;
未知的是什么?
更具体地说,这些运营商做了什么:
unknown.FF.FF;
unknown.FF.SS;
您能举例说明可以在这种未知数据结构中初始化或填写的数据吗?
谢谢!
答案 0 :(得分:2)
unknown
是pair<pair<double, double>, long>
。
无法猜测FF
和SS
的含义是什么。明显的解释是关于FirstFirst
和SecondSecond
的东西 - 但那些不适合它们的使用方式(虽然FirstFirst有点理解,SecondSecond确实没有,因为未知.second是long
,而非一对。
在排除了这一点后,剩下的就是他们只代表first
和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);
答案 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