成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

最新Visual Studio 2010代碼的簡介與說明

開發 后端
今天在辦公室下了很多Visual Studio 2010代碼。而我用的是VS2005,我在使用這些代碼時,基本上絕大部分基于VS2005Asp.net工程都因為少數文件無法轉換而無法加載工程,為此我也苦惱很久,后來終于讓我找到了解決辦法。

在這段實現的Visual Studio 2010代碼中,我們使用了一個move()函數來代替對象的賦值操作符“=”,move()只是簡單地接受一個右值引用或者左值引用作為參數,然后直接返回相應對象的右值引用。這一過程不會產生拷貝(Copy)操作,而只會將Visual Studio 2010代碼的源對象移動(Move)到目標對象。

auto關鍵字
在C++0x中,auto關鍵字的意義發生了改變: 它可以“從初始化器(initialize)中推導出所代表的變量的真正類型”。這種對auto關鍵字的使用方式可以大大消除當前冗長和易出錯的代碼。在這段代碼中,我們使用auto關鍵字來代替了真正的數據類型map<string, string>::iterator,這使得整個代碼自然而簡潔。#t#

另外,跟其他數據類型一樣,我們也可以對auto關鍵字進行修飾,例如添加const,指針(*),左值引用(&),右值引用(&&)等等,編譯器會根據auto類型所代表的真正的數據來決定這些修飾的具體含義。

為了兼容一些舊有的C++代碼,我們可以使用/Zc:auto這個編譯器選項,來告訴編譯器是采用auto關鍵字的原有定義還是在新標準C++0x中的定義。

右值引用
作為最重要的一項語言特性,右值引用(rvalue references)被引入到 C++0x中。我們可以通過操作符“&&”來聲明一個右值引用,原先在C++中使用“&”操作符聲明的引用現在被稱為左值引用。

  1. template <class T> swap(T& a, T& b)     
  2. {     
  3. T tmp(a);   // tmp對象創建后,我們就擁有了a的兩份拷貝     
  4. a = b;  // 現在我們擁有b的兩份拷貝     
  5. b = tmp;// 現在我們擁有a的兩份拷貝     
  6. }    
  7. template <class T> swap(T& a, T& b)  
  8. {  
  9. T tmp(a);   // tmp對象創建后,我們就擁有了a的兩份拷貝  
  10. a = b;  // 現在我們擁有b的兩份拷貝  
  11. b = tmp;// 現在我們擁有a的兩份拷貝  
  12. }   

在第一行Visual Studio 2010代碼中,我們將一個臨時對象int()綁定到一個左值引用,將產生一個編譯錯誤。而在第二行中,我們將臨時對象綁定到右值引用,就可以順利通過編譯。右值是無名的數據,例如函數的返回值一般說來就是右值。當對右值進行操作的時候,右值本身往往沒有必要保留,因此在某些情況下可以直接“移動”之。通過右值引用,程序可以明確的區分出傳入的參數是否為右值,從而避免了不必要的拷貝,程序的效率也就得到了提高。我們考慮一個簡單的數據交換的小程序,從中來體會右值引用所帶來的效率提升。我們可以寫一個函數swap來實現兩個變量值的交換:

  1. #include "stdafx.h"     
  2. template <class T> 
  3. T&& move(T&& a)     
  4. {     
  5. return a;     
  6. }     
  7. template <class T> void swap(T& a, T& b)     
  8. {     
  9. T tmp(move(a)); // 對象a被移動到對象tmp,a被清空     
  10. a = move(b);// 對象b被移動到對象a,b被清空     
  11. b = move(tmp);  // 對象tmp被移動到對象b     
  12. }     
  13. int _tmain(int argc, _TCHAR* argv[])     
  14. {     
  15. int a = 1;     
  16. int b = 2;     
  17. swap(a, b);     
  18. return 0;     
  19. }   

在這段Visual Studio 2010代碼中,雖然我們只是為了進行簡單的數據交換,但是卻執行了多次對象拷貝。這些對象的拷貝操作,特別是當這些對象比較大的時候,無疑會影響程序的效率。

 

責任編輯:chenqingxiang 來源: 華軍軟件
相關推薦

2009-12-02 15:32:13

Visual Stud

2010-03-26 16:23:07

Visual Stud

2009-11-30 13:17:23

Visual Stud

2009-12-11 15:31:17

Visual Stud

2009-12-02 09:43:38

Visual Stud

2009-09-07 09:22:17

Visual Stud代碼片段

2009-11-10 13:43:37

Visual Stud

2009-12-04 17:21:35

Visual Stud

2009-12-18 10:24:28

VS 2010代碼

2009-12-01 18:33:15

Visual Stud

2009-12-14 17:28:18

Visual Stud

2010-03-11 16:29:28

Visual Stud

2009-12-10 17:05:10

Visual Stud

2019-11-20 09:25:03

Visual Stud編程語言

2010-02-22 16:43:33

Visual Stud

2009-11-11 09:48:06

Visual Stud

2009-12-03 13:24:19

2010-02-05 09:06:17

Visual Stud

2009-04-23 14:05:28

Visual Stud歷史調試功能

2009-12-01 18:50:57

Visual Stud
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 毛片站| 久久久久成人精品免费播放动漫 | 欧美综合一区二区三区 | 中文字幕在线一区二区三区 | 91久久精 | 日韩免费看片 | 青青草综合 | 中文字幕高清视频 | 久在线| 看羞羞视频免费 | 国内自拍偷拍视频 | 91动漫在线观看 | 精品一区二区三区四区五区 | 欧美一区2区三区3区公司 | 天天干在线播放 | 午夜精品久久久久久久久久久久 | 精品国产伦一区二区三区观看说明 | 久久这里只有精品首页 | 精品欧美乱码久久久久久 | 中文字幕在线观看日韩 | 九色视频网站 | 亚洲香蕉在线视频 | 精品视频在线观看 | 日韩欧美网 | 久久精品亚洲精品国产欧美kt∨ | 日韩精品久久一区二区三区 | 欧美视频网 | 国产性网| 亚洲一区二区三区在线免费观看 | 天天夜干 | 欧美videosex性极品hd | 欧美一极视频 | 久久久久久久国产 | 81精品国产乱码久久久久久 | caoporn国产精品免费公开 | 九九国产在线观看 | 草草草久久久 | 热99在线 | 精品亚洲一区二区 | 欧美三区 | 一级免费毛片 |