bool(*p)啥意思,stl不懂...
c#有别的办法实现的

解决方案 »

  1.   

    不好意思,C++程序有一行写错了(都不知怎么会犯这样的错误,而且之前我调试过)
    for(int j=i-1;j>=0&&p(x,arr[j]);j--)  ->  for(i-1;j>=0&&p(x,arr[j]);j--)
    也就是去掉[int j=]
      

  2.   

    晕,还打错了
    for(int j=i-1;j>=0&&p(x,arr[j]);j--)  ->  for(j=i-1;j>=0&&p(x,arr[j]);j--)
    也就是去掉[int ]
      

  3.   

    声明: 
    public void delegate dSort(string [] sList);在Main里面Class1 class1 = new Class1();dSort ds= new dSort(class1.Sort);用的话你就 string [] s = new string {----------}; ds(s);就可以了,因为你的是void的 也不用返回 呵呵委托简单吧   不过方在你的排序方法上好像没有用 嘎嘎
      

  4.   

    唉,只有靠自己!!!C#版:
    using System;
    using System.IO;
    using System.Diagnostics;
    class Class1
    {
    static void Main(string[] args)
    {
    string[]s={"right","yes","no","ok","look","good","well","china","book"};
    foreach(string t in s)
    Console.WriteLine(t);
    Console.WriteLine("============");
    Sort(s,new My(mysort));
    foreach(string t in s)
    Console.WriteLine(t);
    Console.Read();
    }
    delegate bool My(string a,string b);
    static bool mysort(string s,string t)
    {
    return s.CompareTo(t)>0;
    }
    static void Sort(string[]arr,My p)
    {
    for(int i=1,j;i<arr.Length;i++)
    {
    string x=arr[i];
    for(j=i-1;j>=0&&p(x,arr[j]);j--)
    arr[j+1]=arr[j];
    arr[j+1]=x;
    }
    }
    }C#版的整体实力不如C++版啊,难怪有人说C#的工资低,实际上是水平问题怀念C++!
      

  5.   

    lz把委托看成typedef一个函数指针不就行了?C#的委托就相当于对象相关的类型安全的函数指针。
    也不用一个问题就把人都打扁吧?
      

  6.   

    想结贴,不知把分给谁
    另一个问题吧:
    定义委托的参数名好像没用吧?
    delegate void del(int a);
    这个a根本无法使用,C++可以写成:
    void(*del)(int)//只有类型,没有参数名C#中是多余的吧?
      

  7.   

    这种代码........就是套了一个stl架子的C........大学的C++考试可能会考这种题。-----------------------------------
    定义委托的参数名好像没用吧?
    delegate void del(int a);
    这个a根本无法使用,C++可以写成:
    void(*del)(int)//只有类型,没有参数名C#中是多余的吧?
    ------------------------------------
    写注释有什么用,这个参数名就有什么用.........参数名又不经过编译。
      

  8.   

    这样写:using System;
    using System.IO;
    using System.Diagnostics;
    class Class1
    {
        public delegate bool sortFun(string s, string t);    static void Main(string[] args)
        {
            string[] s ={ "right", "yes", "no", "ok", "look", "good", "well", "china", "book" };
            foreach (string t in s)
                Console.WriteLine(t);
            Console.WriteLine("============");
            Sort(s,mysort);
            foreach (string t in s)
                Console.WriteLine(t);
            Console.Read();
        }
        static bool mysort(string s, string t)
        {
            return s.CompareTo(t) > 0;
        }
        static void Sort(string[] arr,sortFun p)//这里怎么写啊
        {
            for (int i = 1, j; i < arr.Length; i++)
            {
                string x = arr[i];
                for (j = i - 1; j >= 0 && p(x,arr[j]); j--)//这里也要改吧
                    arr[j + 1] = arr[j];
                arr[j + 1] = x;
            }
        }
    }
      

  9.   

    static bool mysort(string s, string t)
    {
        return s.CompareTo(t) > 0;
    }改成static bool mysort(string s, string t)
    {
        return String.Compare(s,t,StringComparison.Ordinal)==0;
    }执行效率要高很多
      

  10.   

    怎么感觉搂主所说的C++像是C呢?像这样的问题,在C++中用引用不是更好吗?干嘛还是搞得头都大得指针