製作一個結構來容納你想要的東西。給它適當的構造函數。
struct distance_indexes_t
{
double distance;
size_t p1, p2;
distance_indexes_t()
: distance(), p1(), p2()
{}
distance_indexes_t(double distance, size_t p1, size_t p2)
: distance(distance), p1(p1), p2(p2)
{}
};
distance_indexes_t di1; // zeros
distance_indexes_t di2{ 3.5, 4, 5 };
OR
struct distance_indexes_t
{
double distance = 0;
size_t p1 = 0, p2 = 0;
distance_indexes_t() = default; // Not necessary, but nice for clarity.
distance_indexes_t(double distance, size_t p1, size_t p2)
: distance(distance), p1(p1), p2(p2)
{}
};
distance_indexes_t di1; // zeros
distance_indexes_t di2{ 3.5, 4, 5 };
都將使用默認的拷貝構造函數和賦值運算符。移動構造函數和移動運算符在這裏並不重要,但是你也會得到這些默認值。
或者,對於C++ 14:
struct distance_indexes_t
{
double distance = 0;
size_t p1 = 0, p2 = 0;
};
distance_indexes_t di1; // zeros
distance_indexes_t di2{ 3.5, 4, 5 };
或者,對於C++ 03和更早:
struct distance_indexes_t
{
double distance;
size_t p1, p2;
};
distance_indexes_t di1; // random content
distance_indexes_t di2{ 3.5, 4, 5 };
製作一個簡單的POD結構,其中包含一個float/double用於距離和一個用於索引的pair/array。 –
你有沒有試過?你有沒有進行任何研究?你有沒有想過通過你的問題,並提出任何想法? –
@LightnessRacesinOrbit是的,我想到了,並提出了使用'std :: vector>>'的想法。但是有一個小問題。我不知道如何搜索一個單獨的元素?例如,如果我將執行'vector.at(4)',它會給我所有的東西,但我們只需要p1&p1而不是距離信息。 –