- 主题:C++的map慢的令人发指,尤其比C#慢的太多太多
不容易。
Rust有同样的问题,它的标准库的HashMap性能是和stl同一级别的。
开发团队解释说这是为了“安全”,确保在任何场景下都能正确的工作,防止HashDos之
类的攻击。
和STL一样,提供了API,不担心dos的话可以自己换hash算法,crates上提供了一些第三
方的库可用
at the time of writing the default is an algorithm called SipHash 1-3. This
algorithm is high quality—it provides high protection against collisions—b
ut is relatively slow, particular for short keys such as integers.
【 在 z16166 的大作中提到: 】
: 上面贴了个截图,是评论区有人喷C++委员会的,为啥不弄个性能好的内置在std中
: 这种可能在不同的场景有不同的要求,诸如插入多、查询多、查询miss多、引用不变性等要求,要完全满足这些需求而且性能做到很高,估计还是很有难度的,可能偏一方面。std这个按说找个性能更好的替换掉,貌似不是难事?
--
FROM 111.199.188.*
全局变量,静态变量都是零,分配的空间被初始化成零
【 在 hdftiger 的大作中提到: 】
: 至少我知道一点,debug模式下,变量没有人为初始化,编译器会给你默认初始化为0;而在release模式下,没有初始化的变量,可能编译器会给个很大的数
: 【 在 haw 的大作中提到: 】
: : “隐藏更深的bug可能会在release版本才会出现,更难以调试”
: ...................
--来自微微水木3.5.12
--
FROM 58.37.96.*
我发现我大学必修的一年c语言和硕士选修的一学期visual c++完全不知道你们在说啥
--
FROM 221.222.20.*
std::unordered_map 的目前做法也不是不可接受
只是看起来大家都不知道
目前 std::unordered_map 的实现对哪些操作是最优的,哪些操作是低效的
这一点 std::vector 做的比较好,大家都知道尾部插入、删除最优,其他位置低效
这样就不会有人抱怨 std::vector 的实现的毛病了
当然,前面版友给出了针对 std::unordered_map 有大量插入操作时的优化方法(自定义散列函数与分配器),这体现了 C++ 的可订制性
【 在 gameplayer 的大作中提到: 】
: 不容易。
: Rust有同样的问题,它的标准库的HashMap性能是和stl同一级别的。
: 开发团队解释说这是为了“安全”,确保在任何场景下都能正确的工作,防止HashDos之
: ...................
--
FROM 183.131.109.*
那个值是选择过的,不是默认空值,不指向合法地址
好像是一个非法机器码?
确保不管是按指令执行还是按地址访问都会立刻失败
【 在 finlab 的大作中提到: 】
: 我记得以前vc6 debug版是把未明确初始化的内存填充为“烫烫烫烫”
: 这样一旦有指针指向“烫烫”,就知道出现非法指针了。
:
--
FROM 103.40.221.*
好奇一年 C 语言怎么安排的?
换成 C++,一年看起来更合适一些
【 在 miniQ 的大作中提到: 】
: 我发现我大学必修的一年c语言和硕士选修的一学期visual c++完全不知道你们在说啥
--
FROM 183.131.109.*
javafish 这个昵称很有意思,
两大技术版主的合成啊
【 在 javafish 的大作中提到: 】
: 那个值是选择过的,不是默认空值,不指向合法地址
: 好像是一个非法机器码?
: 确保不管是按指令执行还是按地址访问都会立刻失败
: ...................
--
FROM 183.131.109.*
VC单独拎出来作为选修……
这课表实在挺前不着村后不着店的
要么单磕C++(其实一学期也没大意思……)
或者泛主流编程语言的介绍之类
要么就开windows或者Linux系统编程的课
【 在 miniQ 的大作中提到: 】
: 我发现我大学必修的一年c语言和硕士选修的一学期visual c++完全不知道你们在说啥
--
修改:javafish FROM 103.40.221.*
FROM 103.40.221.*
哈,马甲而已,当初没想那么多
【 在 easior 的大作中提到: 】
: javafish 这个昵称很有意思,
: 两大技术版主的合成啊
:
--
FROM 103.40.221.*
0xcc = int 3
【 在 javafish (这不是一个昵称) 的大作中提到: 】
: 那个值是选择过的,不是默认空值,不指向合法地址
: 好像是一个非法机器码?
:
: 确保不管是按指令执行还是按地址访问都会立刻失败
--
FROM 222.129.205.*