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>

ただし、確実に何FFを意味するのかを推測することは不可能です。SS明らかな解釈はFirstFirstand SecondSecond-- に関するものですが、それらは使用されている方法には適合しません (また、FirstFirst はある程度理にかなっていますが、SecondSecond は実際にはそうではありません。なぜなら、unknown.second はlongであり、ペアではないからです)。

それを除外すると、残っているのは and を表すだけfirstsecondので、unknown.FF.SSは と同等でunknown.first.secondあり、unknown.FF.FFと同等unknown.first.firstです。

このようなデータをどのように配置するかについてはunknown、1 つの可能性は次のようになります。

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>次の 2 つのメンバーがあります。

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 に答える