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

.Net Framework容器與STL的詳細比較

開發 后端
.Net Framework容器主要是包含在System.Collections里的。我們可以通過本文介紹的相關內容詳細解讀其中的重要概念。

.Net Framework開發環境為程序員們帶來了非常大的好處。在這里我們就先來了解一下.Net Framework容器與STL容器之間的比較。從中更進一步的對.Net Framework有一個深入的了解程度。#t#

在.Net Framework容器和STL中有眾多的容器,為編程帶來了方便,我們就先對這兩種框架里的容器做了一個比較。

在STL中,主要有這么幾種:

Vector Deque List Set/Multiset Map/Multimap Stack Queue Bitset

在.Net Framework容器包含在System.Collections里,主要有這么幾種:

ArrayList BitArray Hashtable SortedList Queue Stack

這些結構中,有幾個是功能類似的,比如Vector和ArrayList,都是可自動調整容量的數組。Queue和Stack也是相同的。

.Net Framework容器與STL容器不同的有這么幾點:

1、.NET沒有Set和Map,只有Hashtable,而標準C++里是沒有Hashtable的,只有在具體實作中,有所涉及,比如說SGI STL里。

2、.NET有SortedList,這是Hashtable和Array的混合體,功能強大,可是實現Dictionary。

3、STL的Bitset是存儲位(bit)或布爾值且大小固定的數組,用于管理各種標志(flags)。

.Net Framework容器的BitArray僅存儲布爾值。

這兩個的實現和使用方式不同,但是主要用途卻是類似的,MSDN上的例子和《標準程序庫》的例子相當雷同。

關于容器的訪問方式

有了容器,就必須去訪問,才能運用。兩者的訪問原理類似,都是用一種特殊的對象去訪問。

⑴STL方式:使用迭代器(iterator),迭代器有許多種,每種容器都有自己的迭代器。但是使用迭代器的方式卻是相同的,這使得我們使用容器相當方便。
迭代器行為上類似于指針,內部封裝了對不同容器的操作。對我們隱藏了容器內部復雜的結構。

⑵.NET的方式頗為不同。類庫中有一個名為IEnumerable的接口,所有容器類都繼承實現了這個接口。它有一個公共方法:GetEnumerator()。因此所有容器都有這個方法,它返回可用于循環訪問集合的IEnumerator,這個IEnumerator類似于STL的迭代器。

使用實例:

  1. using System;   
  2. using System.Collections;   
  3.  
  4. public class ArrayListTest   
  5. {   
  6. public static void Main()   
  7. {   
  8. ArrayList alist=new ArrayList();   
  9. alist.Add(1);   
  10. alist.Add(2);   
  11. alist.Add(3);   
  12.  
  13. print(alist);   
  14. }   
  15. public static void print
    (IEnumerable myList)   
  16. {   
  17. System.Collections.IEnumerator 
    myEnum=myList.GetEnumerator();   
  18. while(myEnum.MoveNext())   
  19. {   
  20. Console.WriteLine(myEnum.Current);   
  21. }   
  22. }   
  23. }  

綜合起來看,.Net Framework容器和STL的容器類型相當齊全,都涉及了方方面面,只有細微差別。訪問方式從本質上說也是一致的。

責任編輯:曹凱 來源: 博客園
相關推薦

2009-12-15 11:28:34

.NET Framew

2010-01-06 18:13:58

.NET Framew

2010-01-06 19:18:22

.NET Framew

2010-01-05 17:39:10

.NET Framew

2010-01-06 13:50:37

.NET Framew

2014-03-10 10:06:40

WebSocket.Net

2009-08-18 11:08:24

.Net Framew

2009-12-14 10:19:23

.NET Framew

2010-01-06 19:38:16

.NET Framew

2010-01-06 18:59:41

.Net Framew

2021-12-25 23:25:04

LinuxDocker容器

2010-01-06 11:30:22

.NET Framew

2010-01-06 15:29:13

.NET Framew

2010-01-05 11:26:27

.net Framew

2009-09-07 15:04:07

2010-01-06 17:20:38

.Net Framew

2011-07-13 15:07:48

STLC++

2009-09-18 09:25:06

LINQ Framew

2009-07-28 14:10:14

2011-07-13 14:49:31

STLC++
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩视频福利 | 国产精品久久欧美久久一区 | 精品国产鲁一鲁一区二区张丽 | 日韩免费三级 | www.亚洲.com | 国产乱码高清区二区三区在线 | 国色天香综合网 | 精品欧美乱码久久久久久1区2区 | 久久成人免费视频 | 95国产精品 | 欧美一级黄色片在线观看 | 福利视频网址 | 天天操综合网 | 亚洲精品久久久久久久久久久 | 亚洲欧美视频 | 午夜电影一区二区 | 成年人在线播放 | 中文字幕黄色大片 | 亚洲香蕉在线视频 | 久久影音先锋 | 亚洲欧美日韩一区 | 国产一区二区三区日韩 | 日韩一区二区免费视频 | 午夜视频在线观看一区二区 | 亚洲视频欧美视频 | 午夜影院中文字幕 | 极品在线 | 久久精品视频在线观看 | 欧美一区二区 | 欧美日韩国产精品一区二区 | 狠狠av | 国产精品视频一区二区三区不卡 | 91玖玖 | 日韩中文在线 | 国产精品久久久久久久久免费丝袜 | 国产精品视频一区二区三区四蜜臂 | av网站观看 | 毛片站| 国产福利在线 | 国产乱码精品一区二区三区中文 | 日韩免费视频一区二区 |