競技プログラミング用のライブラリ    次のライブラリへ    前のライブラリへ

001-05 ソートを定義した構造体とクラス


ソートを定義した構造体とクラスです。


C#のソース

    ////////////////////////////////////////////////////////////////
    // ソートを定義した構造体
    ////////////////////////////////////////////////////////////////
    struct SortableStruct : IComparable<SortableStruct>
    {
        internal int Col1;
        internal int Col2;

        // OrderBy Col1 desc , Col2 asc でソート
        public int CompareTo(SortableStruct pOtherIns)
        {
            if (Col1 != pOtherIns.Col1) {
                return pOtherIns.Col1.CompareTo(Col1);
            }
            return Col2.CompareTo(pOtherIns.Col2);
        }
    }

    ////////////////////////////////////////////////////////////////
    // ソートを定義したクラス
    ////////////////////////////////////////////////////////////////
    class SortableClass : IComparable<SortableClass>
    {
        internal int Ind;
        internal string Name;

        // OrderBy Name , Ind でソート
        public int CompareTo(SortableClass pOtherIns)
        {
            int cmp = Name.CompareTo(pOtherIns.Name);
            if (cmp != 0) {
                return cmp;
            }
            return Ind.CompareTo(pOtherIns.Ind);
        }
    }