Visual studio 2010 在VC++;对数字进行排序?

Visual studio 2010 在VC++;对数字进行排序?,visual-studio-2010,c++-cli,Visual Studio 2010,C++ Cli,我有两列数据。比如说, [78,c] [28,a] [34,g] 我想看看是否有任何内置函数来对数字进行排序,并告诉我订单信息。例如,(从小到大)函数将返回[2,3,1],因为第二行的第一列元素最小。您的数据结构是什么 如果您使用的是C++/CLI,那么就可以使用整个.NET框架 也就是说,我不相信有任何内置的东西可以告诉你顺序。我相信一切都会这样 如果你真的需要顺序,而不是一个排序的列表,我相信这可以做到。这将创建新对象,这些对象将记住它们的原始列表位置,对它们进行排序,然后读回原始索引 //

我有两列数据。比如说,

[78,c]

[28,a]

[34,g]


我想看看是否有任何内置函数来对数字进行排序,并告诉我订单信息。例如,(从小到大)函数将返回[2,3,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;
}
//我假设您已经有了类似的类。
参考类MyData
{
公众:
整数;
字符串^字母;
};
ref class SortHelper:i可比较
{
公众:
MyData^数据;
国际原始索引;
排序器(MyData^数据,整数索引)
{
这->数据=数据;
此->originalIndex=索引;
}
虚拟比较器(SortHelper^其他)
{
返回此->数据->编号。比较(其他->数据->编号);
}
};
无效列表GetSortedIndex(列表^input)
{
列表^working=gcnew List();
对于(int i=0;iCount;i++)
{
工作->添加(新排序器(输入[i],i));
}
工作->排序();
列表^result=gcnew List();
对于每个(SortHelper^工作中的助手)
{
结果->添加(助手->原始索引);
}
返回结果;
}