小编mar*_*co6的帖子

C性能和编译选项

我有两个类似的实现(java和c ++)用于像选择排序这样的简单算法.

public interface SortingAlgorithm {

    public void sort(int[] a);
}

public class SelectionSort implements SortingAlgorithm {

    @Override
    public void sort(int[] a) {
        for (int i = 0; i < a.length; i++) {
            int lowerElementIndex = i;
            for (int j = i + 1; j < a.length; j++) {
                if (a[j] < a[lowerElementIndex]) {
                    lowerElementIndex = j;
                }
            }
            swap(a, lowerElementIndex, i);
        }
    }

    private void swap(int[] a, int i, int j) {
        if (i == j) {
            return;
        } …
Run Code Online (Sandbox Code Playgroud)

c java performance assembly gcc

9
推荐指数
1
解决办法
359
查看次数

协方差接口的实现顺序

采取这段代码:

using System;

public class Program
{
    interface IVisitable<T> { 
        void Accept(object o);
    }

    interface IVisitor<in T> {
        void Visit(T t);
    }

    class IntAndDoubleVisitable: IVisitable<int>, IVisitable<double>
    {
        public void Accept(object o) {
            if (o is IVisitor<IntAndDoubleVisitable>) {
                ((IVisitor<IntAndDoubleVisitable>)o).Visit(this);
            }
        }
    }

    class SingleVisitor<T>: IVisitor<T> {
        public void Visit(T visitor) {
            Console.WriteLine(typeof(T).FullName);
        }
    }

    class DoubleVisitor1: IVisitor<IVisitable<int>>, IVisitor<IVisitable<double>> {
        void IVisitor<IVisitable<int>>.Visit(IVisitable<int> t) {
            Console.WriteLine("Int");
        }

        void IVisitor<IVisitable<double>>.Visit(IVisitable<double> t) {
            Console.WriteLine("Double");
        }
    }

    class DoubleVisitor2: IVisitor<IVisitable<double>>, IVisitor<IVisitable<int>> {
        void IVisitor<IVisitable<int>>.Visit(IVisitable<int> t) { …
Run Code Online (Sandbox Code Playgroud)

c# interface

3
推荐指数
1
解决办法
94
查看次数

标签 统计

assembly ×1

c ×1

c# ×1

gcc ×1

interface ×1

java ×1

performance ×1