.NET中是否可用标准模版库(STL)

分析问题

  标准模版库(STL)实在惠普实验室开发出来的一套算法类库的集合,从概念上主要区分为三大部分:

  1、算法(algorithm)。

  2、容器(container)。

  3、迭代器(iterrator)。

  STL的设计都致力于打造通用的算法和类库,例如一个排序的算法,可能针对包含不同类型元素的集合进行排序。在C++中,这样的通用性需要依靠模版来实现,而在.NET中,则依靠泛型。.NET中的STL类库有Wintellect团队开发完成,类库名称为Power Collections,作为一个通用的容器类库,笔者鼓励读者使用.NET中的STL模版库,这样做既能节省开发时间,又能从Power Collections高效的算法中受益。下表列出了Power Collections中一些常用的类型。

类型 简介
Algorithms 算法类型包含了一系列操作容器的静态方法,大多数方法处理标准的泛型接口,例如IEnumerable<T>、ICollection<T>、IList<T>等
Bag<T> 一个T类型元素的集合,和Set类型不同的是,Bag中可以包含重复的元素(重复是指Equals方法调用返回true)
BagList<T> 提供了一个有序的元素的集合,BigList的算法针对大集合进行了优化,对于拥有100个约束以上的集合,BigList拥有非常高效的插入、删除、复制和连接
CollectionBase<T> 作为一个基类来使用,可以用来方便地实现ICollection<T>或者ICollection接口
Deque<T> 实现了双头队列的数据结构。Deque非常类似List类型,任何节点都非常容易获取。和List不同的是,Deque在头部插入数据非常高效,而List相对地要慢一点。作为性能上的交换,当使用下标来获取元素时Deque比List稍微慢一点
DictionaryBase<TKey,TValue> 作为一个基类来使用,可以方便地实现IDictionary<T>或者IDictionary
OrderedDictionary<TKey,TValue> 一个键与值相应的字典容器,键在类型中被排序并且保证每一个键都有一个对应的值
OrderedBag<T> 一个有序的T对象元素的容器,允许重复元素存在
OrderedSet<T> 一个有序的T对象元素的容器,最小值的下标是0,次小的是1,并依此类推
Set<T> 一个无序的T对象约束的容器,不允许重复元素存在

说明

  Power Collection类库和产品文档可以从http://www.wintellect.com/上免费获得。

答案

  Wintellect团队为.NET开发了STL类库Power Collection,这个类库可以免费获得,.NET程序员可以并且鼓励使用标准模版库(STL)

.NET中是否可用标准模版库(STL)

时间: 2024-10-06 03:32:56

.NET中是否可用标准模版库(STL)的相关文章

C++的标准模板库STL中实现的数据结构之顺序表vector的分析与使用

摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解.即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第一篇,主要针对线性表中的顺序表(动态数组)STL vector进行分析和总结. 引言 因为前段时间对台大的机器学习基石和技法课程进行了学习,发如今详细的实现中经常涉及到各种类型的数据结构,比方线性表.二叉树.图等,在使用这些数据结构时感到有些吃力.主要是对一些主要的数据结构理解的不够.所以趁着暑假假期.近期一段时间总会抽出时间复习一

八、C++ 标准模板库-STL概述

C++ 标准模板库-STL概述 一.基本概念 1.1 泛型程序设计 C++ 语言的核心优势之一就是便于软件的重用,重用在两个方面有体现: 面向对象的思想:继承和多态,标准类库 泛型程序设计(generic programming) 的思想: 模板机制,以及标准模板库 STL 简单地说就是使用模板的程序设计法.将一些常用的数据结构(比如链表,数组,二叉树)和算法(比如排序,查找)写成模板,以后则不论数据结构里放的是什么对象,算法针对什么样的对象,则都不必重新实现数据结构,重新编写算法. 标准模板库

标准模板库--STL

标准模板库STL 1.泛型程序设计 C++ 语言的核心优势之一就是便于软件的重用 C++中有两个方面体现重用: 1.面向对象的思想:继承和多态,标准类库 2.泛型程序设计(generic programming) 的思想: 模板机制,以及标准模板库STL 简单地说就是使用模板的程序设计法. 将一些常用的数据结构(比如链表,数组,二叉树)和算法(比如排序,查找)写成模板,以后则不论数据结构里放的是什么对象,算法针对什么样的对象,则都不必重新实现数据结构,重新编写算法.标准模板库 (Standard

PKU C++程序设计实习 学习笔记6 标准模板库STL

标准模板库STL 8.1 STL概述 1.泛型程序设计 C++ 语言的核心优势之一就是便于软件的重用 C++中有两个方面体现重用:1.面向对象的思想:继承和多态,标准类库  2.泛型程序设计(generic programming) 的思想: 模板机制,以及标准模板库 STL 简单地说就是使用模板的程序设计法. 将一些常用的数据结构(比如链表,数组,二叉树)和算法(比如排序,查找)写成模板,以后则不论数据结构里放的是什么对象,算法针对什么样的对象,则都不必重新实现数据结构,重新编写算法. 标准模

实验8 标准模板库STL

一.实验目的与要求: 了解标准模板库STL中的容器.迭代器.函数对象和算法等基本概念. 掌握STL,并能应用STL解决实际问题. 二.实验过程: 完成实验8标准模板库STL中练习题,见:http://acm.hpu.edu.cn/contest.php?cid=1020,密码c++08,共有5道题.将答题过程简单记录到实验过程中. 将答题结果写到实验结果中,并根据答题结果进行分析.反思,将其写到实验分析中,并写上实验时间.

标准模板库(STL)学习探究之vector容器

标准模板库(STL)学习探究之vector容器  C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据.为了可以使用vector,必须在你的头文件中包含下面的代码:#include <vector>构造函数. Vectors 包含着一系列连续存储的元素,其行为和数组类

C++ 标准模板库STL 队列 queue 使用方法与应用介绍

C++ 标准模板库STL 队列 queue 使用方法与应用介绍 queue queue模板类的定义在<queue>头文件中. 与stack模板类很相似,queue模板类也需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque类型. 定义queue对象的示例代码如下: queue<int> q1; queue<double> q2; queue的基本操作有: 入队,如例:q.push(x); 将x接到队列的末端. 出队,如例:

C++的标准模板库(STL)简介

STL(Standard Template Library,标准模板库)是C++对泛型编程思想的实现,最早是惠普实验室开发的.在被引入C++之前该技术就已经存在了很长的一段时间.后来STL成为ANSI/ISO C++标准的一部分.各个C++厂商也有各自相应的模板库,这些库效率可能很高,但可移植性不一定好. 在C++标准中,STL被组织为下面的17个头文件:<algorithm>.<deque>.<functional>.<iterator>.<arra

【c++】标准模板库STL入门简介与常见用法

一.STL简介 1.什么是STL STL(Standard Template Library)标准模板库,主要由容器.迭代器.算法.函数对象.内存分配器和适配器六大部分组成.STL已是标准C++的一部分,使用STL开发系统可以提高开发效率. 2.容器(Containers) 容器类是可以包含其它对象的模板类,如向量类(vector).链表类(list).双向队列类(deque).集合类(set)和映射类(map)等.其中vector.list.deque为序列式容器,set.map为关联式容器.