x******7 发帖数: 11 | |
I*******g 发帖数: 7600 | 2 喝粥, 和 吃饭 的区别。
【在 x******7 的大作中提到】 : rt
|
s********t 发帖数: 11 | 3 C++:
好处
vector比较好用, num[i] 比 num.get(i)要省事,特别是dp特别麻烦的时候。
二维vector初始化也比Java初始化二维数组要方便。
如果有时需要返回多于一条数据,C++有指针引用。Java就得封装类。
如果可以用C++ 11, auto, lambda啥的都很好用。
坏处:
要考虑内存分配,设计数据结构时要小心翼翼不要漏掉该NULL掉的东西和要delete的东
西。C++要考虑内存是栈分配还是堆分配,如果函数间相互传递就得特别小心有效性和
复制语义。Java简洁不少。
C++的类成员初始化,尤其是模版类要慎用,不然就容易把自己绕进去。
C++的unordered_map一类东西比较烦,比如判断在map里是否存在就得 map.find(xxx)
!= map.end();这个等于号的语义和实际思路相反。Java的containsKey就舒服多了。
OJ时C++的编译错误80%是看不懂的,只能看个行号自己猜。
C++不方便抛异常。比如设计LRU时,int get(int key)这个如果key不存在你返回什么
都不对劲。Java可以直接throw NoSuchElementException, IllegalArgumentException
, ...
C++本身缺一些必要的东西,比如split,不晓得boost可不可以用…… |
y***n 发帖数: 1594 | 4 Very good points
【在 s********t 的大作中提到】 : C++: : 好处 : vector比较好用, num[i] 比 num.get(i)要省事,特别是dp特别麻烦的时候。 : 二维vector初始化也比Java初始化二维数组要方便。 : 如果有时需要返回多于一条数据,C++有指针引用。Java就得封装类。 : 如果可以用C++ 11, auto, lambda啥的都很好用。 : 坏处: : 要考虑内存分配,设计数据结构时要小心翼翼不要漏掉该NULL掉的东西和要delete的东 : 西。C++要考虑内存是栈分配还是堆分配,如果函数间相互传递就得特别小心有效性和 : 复制语义。Java简洁不少。
|
d******v 发帖数: 801 | 5 真详细
【在 s********t 的大作中提到】 : C++: : 好处 : vector比较好用, num[i] 比 num.get(i)要省事,特别是dp特别麻烦的时候。 : 二维vector初始化也比Java初始化二维数组要方便。 : 如果有时需要返回多于一条数据,C++有指针引用。Java就得封装类。 : 如果可以用C++ 11, auto, lambda啥的都很好用。 : 坏处: : 要考虑内存分配,设计数据结构时要小心翼翼不要漏掉该NULL掉的东西和要delete的东 : 西。C++要考虑内存是栈分配还是堆分配,如果函数间相互传递就得特别小心有效性和 : 复制语义。Java简洁不少。
|
g********t 发帖数: 53 | 6 mark
【在 s********t 的大作中提到】 : C++: : 好处 : vector比较好用, num[i] 比 num.get(i)要省事,特别是dp特别麻烦的时候。 : 二维vector初始化也比Java初始化二维数组要方便。 : 如果有时需要返回多于一条数据,C++有指针引用。Java就得封装类。 : 如果可以用C++ 11, auto, lambda啥的都很好用。 : 坏处: : 要考虑内存分配,设计数据结构时要小心翼翼不要漏掉该NULL掉的东西和要delete的东 : 西。C++要考虑内存是栈分配还是堆分配,如果函数间相互传递就得特别小心有效性和 : 复制语义。Java简洁不少。
|