0
私は2列のデータを持っています。例えば、番号をソートするためにVC++に組み込まれている関数はありますか?
[78 C]
[28、A]
[34、G]
Iは、任意の組み込み関数は、数値を並べ替えると言うするかどうかを確認したいです私に注文情報。例えば、(小から大へ)関数は[2、3、1]を返します。なぜなら、2番目の行は最小の1番目の列要素を持つためです。
私は2列のデータを持っています。例えば、番号をソートするためにVC++に組み込まれている関数はありますか?
[78 C]
[28、A]
[34、G]
Iは、任意の組み込み関数は、数値を並べ替えると言うするかどうかを確認したいです私に注文情報。例えば、(小から大へ)関数は[2、3、1]を返します。なぜなら、2番目の行は最小の1番目の列要素を持つためです。
あなたのデータ構造は何ですか?
C++/CLIであれば、.NETフレームワーク全体を利用できます。
私は、あなたに注文を伝えるものは何もないと信じています。私はすべてが実際にソートを行うと信じています。
ソートされたリストではなく、実際にオーダーが必要な場合は、これが実行されると思います。これにより、元のリストの位置を覚えて、並べ替え、元のインデックスの内容を読み戻す新しいオブジェクトが作成されます。
// I'm assuming you have a class similar to this already.
ref class MyData
{
public:
int number;
String^ letter;
};
ref class SortHelper : IComparable<SortHelper^>
{
public:
MyData^ data;
int originalIndex;
SortHelper(MyData^ data, int index)
{
this->data = data;
this->originalIndex = index;
}
virtual CompareTo(SortHelper^ other)
{
return this->data->number.CompareTo(other->data->number);
}
};
void List<int> GetSortedIndexes(List<MyData>^ input)
{
List<SortHelper>^ working = gcnew List<SortHelper>();
for(int i = 0; i < input->Count; i++)
{
working->Add(gcnew SortHelper(input[i], i));
}
working->Sort();
List<int>^ result = gcnew List<int>();
for each(SortHelper^ helper in working)
{
result->Add(helper->originalIndex);
}
return result;
}