use*_*855 2 c++ api data-structures
C++库提供的数据结构API尽可能与java.util.*提供的API相匹配.具体来说,我正在寻找以下DS和以下实用功能: -
**DS**: Priority Queue, HashMap, TreeMap, HashSet,
TreeSet, ArrayList, String most importantly.
**Utility**: Arrays.* , Collections.*, Regex, FileHandling etc.
and other converters and algorithms like Binary Search, Sort, NthElement etc.
Run Code Online (Sandbox Code Playgroud)
我的猜测是Boost可能能够完成所有这些,但是我发现它太笨重并且很难将它添加到项目中,特别是当我想快速开始某些事情时,尽管代码需要全部这些数据结构,整体代码不会那么大,需要花费大量精力来设置库.
一个例子是,如果有人必须编写C++程序来为学校作业执行网络流算法.我相信我能提出更好的例子,但这一点在我的头脑中.
谢谢Ajay
所有这些容器都以SC++ L中的某种形式提供:
Priority Queue
的std :: priority_queue(这实际上是一个容器适配器,而不是容器本身-也就是说,它的工作原理"之上"另一个容器,通常std::vector
或std::deque
.HashMap
std :: unordered_map(或者如果你的编译器不支持C++ 0x,那么boost::unordered_map
)TreeMap
的std ::地图HashSet
和TreeSet
基本相同的HashMap
和TreeMap
,除了键和值是一样的.不过,也std::unordered_set
和std::set
.ArrayList
是值得尊敬的std :: vectorString
是值得尊敬的std :: string.您可以在Boost.Strings库中String
找到Java 类中的许多函数.不要害怕设置提升.根据我的经验,您可以将其设置一次,然后在所有项目中反复使用它.此外,我上面提到的所有库都是仅限标头的库.这意味着,您实际上不需要构建/安装任何库,只需引用标头.
至于其他的事情,我不是很确定,因为我不知道Java中所有这很好.在一天结束时,你不会找到一个"就像Java一样的库,除了用C++编写",因为那会毫无意义.编写C++库是为了发挥C++的优势,编写Java库以发挥Java的优势.尝试将设计用于一种语言的库变成另一种语言,这对我来说没有意义.
归档时间: |
|
查看次数: |
235 次 |
最近记录: |