小编Arl*_*len的帖子

std :: set和std :: vector有什么区别?

我现在正在学习STL.我读到了set容器.我有问题什么时候想用set?在阅读了集合的描述后,看起来它没用,因为我们可以替代它vector.你能说vectorvs set容器的优点和成本吗?谢谢

c++ stl

65
推荐指数
5
解决办法
7万
查看次数

不同类型的列表?

data Plane = Plane { point :: Point, normal :: Vector Double }
data Sphere = Sphere { center :: Point, radius :: Double }

class Shape s where
    intersect :: s -> Ray -> Maybe Point
    surfaceNormal :: s -> Point -> Vector Double
Run Code Online (Sandbox Code Playgroud)

我也做了两个PlaneSphere实例Shape.

我试图将球体和平面存储在同一个列表中,但它不起作用.据我所知,它不应该工作,因为SpherePlane两种不同的类型,但他们的两个实例Shape,所以它不应该工作?如何在列表中存储形状和平面?

shapes :: (Shape t) => [t]
shapes = [ Sphere { center = Point [0, 0, 0], radius = 2.0 }, …
Run Code Online (Sandbox Code Playgroud)

haskell

39
推荐指数
2
解决办法
7443
查看次数

'const ref'和'in'之间的区别?

我试图理解之间的区别const refin,特别是当它涉及到性能.

  1. 我知道这in相当于const scope,但是什么the scope stor­age class means that ref­er­ences in the pa­ra­me­ter can­not be es­caped (e.g. as­signed to a global vari­able).意思?示例代码是受欢迎的.

  2. 如何在实现功能之间const ref和之间做出决定in?我知道ref对象不会被复制,因为它是一个引用,但是同样如此in

d

18
推荐指数
2
解决办法
1435
查看次数

GnuPG 4096位限制

为什么GnuPG中的RSA密钥限制为4096位?

修改源代码以增加最大大小是不合法的吗?

ssh-keygen没有这个限制(例如,我可以创建一个长32768位的密钥).这是为什么?

cryptography gnupg

17
推荐指数
2
解决办法
7749
查看次数

为什么D缺少容器类?

我习惯了C++ STL容器.D有数组,关联数组和字符串,但其余部分在哪里?我知道std.container,但据我所知它只有一个容器,红黑树,如果我需要类似的东西,我可以使用它std::set.但是,如果我需要一个list怎么办?我应该使用数组吗?

std::vector - > array

std::deque - > ?

std::queue - > ?

std::stack - > ? maybe array and std.container functions ?

std::priority_queue - > BinaryHeap

std::list - > ?

std::set - > std.container RedBlackTree

std::multiset - > ?

std::unordered_set - > ?

std::map - > associative arrays

std::multimap - > ?

std::unordered_map - > ?

有没有计划支持任何失踪人员?

d data-structures

17
推荐指数
2
解决办法
2535
查看次数

D中的for语和foreach语句

除了句法上的差异,两者本身是否相同?它们都是用核心语言实现的吗?或者是foreach标准库的一部分?就性能而言,如果我选择一个而不是另一个,它会有所作为吗?

d

15
推荐指数
2
解决办法
1633
查看次数

curry如何工作?

我对Haskell和FP很新.我已经阅读了许多描述currying的文章,但我还没有找到它如何实际工作的解释.

这里是一个功能:(+) :: a -> (a -> a) 如果我这样做(+) 4 7,该函数将4返回一个函数,7并返回11.但是会发生什么4?第一个功能是做什么用的4?怎么(a -> a)7

当我考虑更复杂的功能时,事情变得更加混乱:

max' :: Int -> (Int -> Int)
max' m n | m > n = m
         | otherwise = n
Run Code Online (Sandbox Code Playgroud)

什么(Int -> Int)比较它的参数?它只需要一个参数,但它需要两个参数m > n.

haskell currying

13
推荐指数
3
解决办法
5463
查看次数

`alias`和`typedef`有什么区别?

这一直是我一直在使用alias,但今天我偶然发现D有typedef.有趣的是,据我所知,TDPL甚至没有涵盖它(甚至D Keywords没有在勘误表中列出).该网站确实涵盖了它,但它没有谈论它.我的代码编译有两种,但两者有何区别,什么时候应该使用typedefalias

d

13
推荐指数
2
解决办法
1694
查看次数

特定范围内有多少个不同的浮点数?

有多少可表示彩车之间是否有0.00.5?又有多少表现的彩车之间是否有0.51.0?我对它背后的数学更感兴趣,我需要答案floatsdoubles.

language-agnostic ieee-754

13
推荐指数
1
解决办法
4131
查看次数

D中的存储类是什么?

到目前为止,我的印象是存储类immutableconst存储类.在最近的视频中(大约11点55分), Walter Bright表示这immutable不是一个存储类,而是一个类型构造函数.在官方文档,immutable,const,和在许多其他的关键词,被列为是存储类:

StorageClass:
abstract
auto
const
deprecated
enum
extern
final
immutable
inout
shared
nothrow
override
pure
__gshared
Property
scope
static
synchronized
Run Code Online (Sandbox Code Playgroud)

这个清单错了吗?其中一些没有意义(例如,弃用,覆盖).

我知道static并且ref是存储类,但其余的是什么?D中的哪一个关键字是类型构造函数?

d

13
推荐指数
1
解决办法
845
查看次数