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 实例学习

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

VC++.NET

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

VC++.Net2005的一些常识(转)

  1.源文件:是类成员函数的实现头文件:是类接口申明资源文件:是程序中用到的图片和对话框等资源2.  stdafx.h和stdafx.cpp文件;是第一次编译时系统按这两个文件内容创建预编译头文件(...
  • yefan2222
  • yefan2222
  • 2007年12月04日 09:19
  • 791

vc++.net入门教程

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

整理:C++、VC++.NET、VS.NET和.NET Framework简介

微软对.NET的定义是 The .NET Framework is a new computing platform that simplifies application developmen...
  • haizhongyun
  • haizhongyun
  • 2012年04月05日 10:48
  • 4076

C++ C# VC VC.net以及VC++有什么区别和联系?

C++ C# VC VC.net以及VC++有什么区别和联系?(2007-04-25 09:27:56)转载  C/C++是编程语言,C是C++的爸爸,也就是说C++从C发展而来,而C++完全兼容...
  • xuexijiaoliu
  • xuexijiaoliu
  • 2011年10月06日 04:02
  • 15251

VC%2B%2B6.0助手[Visual Assist X v10.0.1233.0 破解版(Cracked)].7z

  • 2010年10月29日 22:57
  • 5.01MB
  • 下载

C++ Templates The Complete Guide (2nd Edition) 英文高清完整.pdf 2017版 下载

  • 2017年10月01日 21:46
  • 60.7MB
  • 下载

引流脚本有用吗,日引流上千粉的引流脚本是怎么回事

你还在为没有客户烦恼吗?看着别人有客户心急如焚,而你试过各种推广渠道不是被坑就是没效果。那么新崛起的引流脚本有用吗?引流脚本真的可以让大家摆脱客源的烦恼吗? 如果你会操作,了解引流脚本的使用技巧,那么...
  • xxcc8454879
  • xxcc8454879
  • 2018年03月22日 21:12
  • 50

艾宾浩斯曲线真的管用吗?

艾宾浩斯曲线 只是一个概念,并没有什么神奇的。背单词和学习一样,要讲究方法,学习后要计时复习,才能温故而知新。e时代英语 其实就是强迫用户在最合适的时间进行复习,达到最好的记忆效果。 背单词软件 永...
  • gaoch_2000
  • gaoch_2000
  • 2012年05月26日 10:39
  • 1904
收藏助手
不良信息举报
您举报文章:VC++.net 真的没有用吗?
举报原因:
原因补充:

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