VC++.net 真的没有用吗?

原创 2007年10月13日 16:50:00

 C++ 真的没有用吗?
Microsoft .NET Framework中关注的是 vb.net,C#。C++ 真的没有用吗?
C++真的是明日黄花吗?

下文的C ++指托管C++,如果用win32 的C++和.net比就没有意义了,没有技术含量。

下面做个测试:

static void function1()
        {
            int i = 0, j = 0, a = 0;

            for (i = 0; i < 100000; i++)
                j += i;
        }
        static void function2()
        {
            int i = 0, j = 0;

            for (i = 0; i < 200000; i++)
                j = i;
        }
        static void Main(string[] args)
        {
            int i = 0, j = 0;
            for (i = 0; i < 100; i++)
                function1();
            for (i = 0; i < 50000; i++)
                function2();

          
        }
这样的代码 让C#跑 要7秒,注:VC++.net代码相似,就不列出。
如果让 C++跑2秒都不到!
变本加厉,全部i < 200000;
即for (i = 0; i < 200000; i++),丝毫不影响C++!

测试2:
排序 算法:

C++

namespace cdll {

 public ref class Class1
 {
 public:void sort(array<int> ^list)
     {
      int i,j;
      int temp;
      bool done=false;
      j=1;
      while((j<list->Length )&&(!done))
      {
       done=true;
       for(i=0;i<list->Length-j;i++)
       {
        if(list[i]>(list[i+1]))
        {
         done=false;
         temp =list[i];
         list[i]=list[i+1];
         list[i+1]=temp;
        }
       }
       j++;

      };
     }
 };
}

C#

using System;
using System.Collections.Generic;
using System.Text;

namespace ClassLibrary1
{

    public class bubblesorter
    {
        public void sort(int[] list)
        {
            int i, j, temp;
            bool done = false;
            j = 1;
            while ((j < list.Length ) && (!done))
            {
                done = true;
                for (i = 0; i < list.Length - j; i++)
                {
                    if (list[i] > list[i + 1])
                    {
                        done = false;
                        temp = list[i];
                        list[i] = list[i + 1];
                        list[i + 1] = temp;
                    }
                }
                j++;
            }
        }
    }
}

测试控制台:

static void Main(string[] args)
        {
            Random ran=new Random(); 
            int[] iarrary=new int[80000];
          
            System.Text.StringBuilder    s=new StringBuilder();
            int temp;
            for (int i = 0; i < 80000; i++)
            { iarrary[i] = ran.Next(100000);
            temp = iarrary[i];
        
                s.Append(" ");
                s.Append(iarrary[i].ToString ());
            }
            ClassLibrary1.bubblesorter  csb=new ClassLibrary1.bubblesorter ();
cdll.Class1 cpb = new cdll.Class1();
           
            System.IO.File.AppendAllText (@"c:/1.text",s.ToString()) ;   
           
            Console.WriteLine(DateTime.Now);
          // csb.sort(iarrary);  //  test C #

            cpb.sort(iarrary); // C ++
            Console.WriteLine(DateTime.Now);
            for (int i = 0; i < 80000; i++)
            {
             
                s.Append(" ");
                s.Append(iarrary[i].ToString());
            }
             System.IO.File.AppendAllText(@"c:/2.text",s.ToString()) ;
            Console.Read();
        }
输出:
C#
2007-10-13 12:22:13
2007-10-13 12:22:36
C++
2007-10-13 12:23:21
2007-10-13 12:23:45

可以看出冒泡排序(bubble)中C++和C #不分伯仲。
(注我测试过 不同语言 .dll调用 要多用1 s)

工具 :VC++ 2005 电脑cpu 奔腾D820 ,内存DDR2 667 1G,系统:windows2003(sp2),vista 最终版

VC++.NET

  • 2008年06月01日 00:57
  • 4.2MB
  • 下载

vc++.net入门教程

  • 2012年08月02日 16:34
  • 23.92MB
  • 下载

VC++ .Net 实例学习

VC++.NET中添加由C#编译的DLL引用的方法 http://blog.csdn.net/much0726/article/details/4986627 关于VC.NET的资料网络上...
  • bcbobo21cn
  • bcbobo21cn
  • 2017年06月18日 16:55
  • 775

[VC++.NET编程].NET基础知识

1 .NET框架平台 .NET框架是一个多语言组件开发和执行环境,它提供了一个跨语言的统一编程环境。.NET框架的目的是便于开发人员更容易地建立Web应用程序和Web服务,使得Internet上的各应...
  • bearthur1234
  • bearthur1234
  • 2013年09月01日 16:32
  • 1099

H.264视频编码在VC++.Net中的实现

From: http://blog.csdn.net/xwchen/article/details/5052981  引言:H.264编码技术是俱乐部在过去一段时间内研究的一个方向,对该编码...
  • JoeBlackzqq
  • JoeBlackzqq
  • 2014年07月16日 13:55
  • 1019

MFC动态加载图片

void CMFCDemoDlg::OnInsertImage() { CFileDialog dlg(TRUE,_T("jpg"),_T("*.jpg"), OFN_HIDEREADONLY|OF...
  • fzuim
  • fzuim
  • 2016年06月14日 15:54
  • 1197

有这样一种单身 总有人问你,有对象没? 呵呵,没有呢。 不会吧,不可能吧 ……

总有人问你,有对象没?      呵呵,没有呢。      不会吧,不可能吧 ……      其实,那是真的,不是没人追,没人要,只是没有合适的;不是眼光高,要求多,只是没有感觉的。 也许有时想...
  • u011206733
  • u011206733
  • 2014年11月16日 16:53
  • 356

c#多选项卡的浏览器控件的设计及实现

2.2.  TabControl控件 TabControl 控件是Windows 窗体多个选项卡控件,这些选项卡类似于笔记本中的分隔卡和档案柜文件夹中的标签。选项卡中可包含图片和其他控件。您...
  • fsqcy
  • fsqcy
  • 2013年03月24日 16:57
  • 1948

班门弄斧一次VC++.NET 2008写的HOOK RECV代码

学习资料:   班门弄斧一次VC++.NET 2008写的HOOK RECV代码   确实是班门弄斧,因为我是学VB的,虽然VB6和.NET都算入门吧,可真正拿VC++写程序还是第一次。学B/...
  • zbc_vc
  • zbc_vc
  • 2013年12月07日 23:16
  • 514

C++开源跨平台类库及在VC++.net中应用的配置

在如下的库支持下,开发的系统可以很方便移植到当前大部分平台上运行而无需改动,只需在对应的平台下 用你喜欢的编译器重新编译即可。 经典的C++库:   STLport-------SGI STL...
  • shuyun123456789
  • shuyun123456789
  • 2014年05月06日 14:14
  • 689
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VC++.net 真的没有用吗?
举报原因:
原因补充:

(最多只允许输入30个字)