免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: myworkstation
打印 上一主题 下一主题

[C++] 【有奖讨论】随着 C++11 的巨大变化,谈谈你对新STL的展望 [复制链接]

论坛徽章:
19
处女座
日期:2014-07-18 14:50:5415-16赛季CBA联赛之北京
日期:2019-09-16 15:39:1415-16赛季CBA联赛之上海
日期:2019-09-15 15:29:0415-16赛季CBA联赛之山西
日期:2017-03-09 10:58:232017金鸡报晓
日期:2017-02-08 10:33:212017金鸡报晓
日期:2017-01-10 15:13:2915-16赛季CBA联赛之深圳
日期:2016-12-15 17:55:53C
日期:2016-10-25 16:00:1515-16赛季CBA联赛之新疆
日期:2016-07-21 14:02:0415-16赛季CBA联赛之江苏
日期:2016-06-30 12:15:04shanzhi
日期:2016-06-17 17:59:31平安夜徽章
日期:2015-12-26 00:06:30
11 [报告]
发表于 2015-06-19 12:36 来自手机 |只看该作者
我个人觉得c++的定位,定位很尴尬。其次是ABI兼容性差,各个平台库不统一,c++在应用开发上还是有很多大厂商在用,MS,GOOGLE。android native层很大部分代码使用C++开发。

求职 : Linux运维
论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:15:0815-16赛季CBA联赛之山东
日期:2016-10-31 10:40:10综合交流区版块每日发帖之星
日期:2016-07-06 06:20:00IT运维版块每日发帖之星
日期:2016-02-08 06:20:00数据库技术版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-10 06:20:00黄金圣斗士
日期:2015-11-24 10:45:10IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2015-08-13 06:20:00IT运维版块每日发帖之星
日期:2015-07-30 09:40:012015年亚洲杯之巴勒斯坦
日期:2015-05-05 10:19:03
12 [报告]
发表于 2015-06-20 07:43 |只看该作者
C++本身需要成长嗯。如果她也有自由开源的授权协议,再加上更多的新特性,我觉得迟早会比JAVA好。我们发现PYTHON以及GCC的成长曲线确实如此,一方面他们在抛弃过时的代码块,一方面他们又进化出许多更需要的新特性。尤其融入了更多的函数编程的优势方法。这就好比最好的CPU一样,既包含复杂指令集的长处,同时又有精简指令集的优点。彼此相互缠绕,犹如DNA态之美!!!

论坛徽章:
0
13 [报告]
发表于 2015-06-23 20:59 |只看该作者
虽然对我来说不是很了解C++,但是还是来支持一下,因为我感觉知识都是一点一滴积累下来的,看到的这个对我来说以后的进步会很有帮助,谢谢楼主的分享

论坛徽章:
19
处女座
日期:2014-07-18 14:50:5415-16赛季CBA联赛之北京
日期:2019-09-16 15:39:1415-16赛季CBA联赛之上海
日期:2019-09-15 15:29:0415-16赛季CBA联赛之山西
日期:2017-03-09 10:58:232017金鸡报晓
日期:2017-02-08 10:33:212017金鸡报晓
日期:2017-01-10 15:13:2915-16赛季CBA联赛之深圳
日期:2016-12-15 17:55:53C
日期:2016-10-25 16:00:1515-16赛季CBA联赛之新疆
日期:2016-07-21 14:02:0415-16赛季CBA联赛之江苏
日期:2016-06-30 12:15:04shanzhi
日期:2016-06-17 17:59:31平安夜徽章
日期:2015-12-26 00:06:30
14 [报告]
发表于 2015-06-24 22:50 来自手机 |只看该作者
本帖最后由 shenlanyouyu 于 2015-06-24 23:02 编辑

1、你是否完整的了解过C++98: 2003 标准下的STL设计和实现,并且对你产生了怎么样的影响?
看过一部分,当时是看候老师的源码剖析。影响在于学习到如何用C++实现设计模式,例如迭代器模式。泛型程序设计思想,采用模板机制,实现代码的复用。

2、你是否认同在开发同应该尽量使用STL,而不是自信的经常重复造轮子?
STL是具有工业级别强度的标准库,能够提高开发效率。重复造轮子反而更容易埋下bug。我是没有那个自信来重复造轮子。我觉得比较好的方法,我自己也是这样做的,对STL再封装,来满足实际的需求。

3、你对C++11标准下的STL有什么样的期望,新的STL特性目前有使用吗?
C++ 11引入了Boost库中的一些函数和类。

4、对你来讲STL还有哪些是急需改进的地方。
存在的问题STL大量使用模板机制,容易代码膨胀,模板机制带来的重复实例化,编译时间过长,编译后code size过大。内存使用率低,还需要优化,例如深拷贝问题,两个容器实例赋值,就会涉及到容器元素的拷贝。

5、对于STL的未来你的预期是什么样的?
好吧,C++越来越学院派了,新标准推进速度不理想,很多新功能都没有用上。 STL的问题在于API的兼容性,不同平台采用不同的C++库,Windows的visual studio采用MS 自己的标准库,linux平台上是一套,google的android使用的是自己实现的bionic。同一个程序在不同平台上执行结果不同。
例如:
#include <iostream>
using namespace std;
int main()
{
     string test;
     int size = sizeof(test);
     cout<<"size is "<<size;
     return 0;
}
在linux平台执行结果为4,而在visual studio 2012中执行结果为28。希望能够有一个统一的标准库。

评分

参与人数 1可用积分 +12 收起 理由
王楠w_n + 12 赞一个!

查看全部评分

论坛徽章:
15
2015七夕节徽章
日期:2015-08-21 11:06:172017金鸡报晓
日期:2017-01-10 15:19:56极客徽章
日期:2016-12-07 14:07:30shanzhi
日期:2016-06-17 17:59:3115-16赛季CBA联赛之四川
日期:2016-04-13 14:36:562016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-01-28 06:20:0015-16赛季CBA联赛之新疆
日期:2016-01-25 14:01:34IT运维版块每周发帖之星
日期:2016-01-07 23:04:26数据库技术版块每日发帖之星
日期:2016-01-03 06:20:00数据库技术版块每日发帖之星
日期:2015-12-01 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
15 [报告]
发表于 2015-06-25 11:15 |只看该作者
C++标准不会规定内部的实现方式,除非只有一个C++编译器厂商,否则不可能统一起来

shenlanyouyu 发表于 2015-06-24 22:50
1、你是否完整的了解过C++98: 2003 标准下的STL设计和实现,并且对你产生了怎么样的影响?
看过一部分,当时 ...

论坛徽章:
44
15-16赛季CBA联赛之浙江
日期:2021-10-11 02:03:59程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-16赛季CBA联赛之新疆
日期:2016-04-25 10:55:452016科比退役纪念章
日期:2016-04-23 00:51:2315-16赛季CBA联赛之山东
日期:2016-04-17 12:00:2815-16赛季CBA联赛之福建
日期:2016-04-12 15:21:2915-16赛季CBA联赛之辽宁
日期:2016-03-24 21:38:2715-16赛季CBA联赛之福建
日期:2016-03-18 12:13:4015-16赛季CBA联赛之佛山
日期:2016-02-05 00:55:2015-16赛季CBA联赛之佛山
日期:2016-02-04 21:11:3615-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
16 [报告]
发表于 2015-06-25 20:14 |只看该作者
回复 14# shenlanyouyu

存在的问题STL大量使用模板机制,容易代码膨胀

人家名字里就有个template,然后你嫌STL用template太多……

模板机制带来的重复实例化,编译时间过长,编译后code size过大。

不要再用VC6了好不?用VC2013会怀孕?

内存使用率低,还需要优化

没错,你的程序的确内存使用率低,还需要优化

例如深拷贝问题,两个容器实例赋值,就会涉及到容器元素的拷贝。

那你说两个容器实例赋值应该做什么动作?

论坛徽章:
19
处女座
日期:2014-07-18 14:50:5415-16赛季CBA联赛之北京
日期:2019-09-16 15:39:1415-16赛季CBA联赛之上海
日期:2019-09-15 15:29:0415-16赛季CBA联赛之山西
日期:2017-03-09 10:58:232017金鸡报晓
日期:2017-02-08 10:33:212017金鸡报晓
日期:2017-01-10 15:13:2915-16赛季CBA联赛之深圳
日期:2016-12-15 17:55:53C
日期:2016-10-25 16:00:1515-16赛季CBA联赛之新疆
日期:2016-07-21 14:02:0415-16赛季CBA联赛之江苏
日期:2016-06-30 12:15:04shanzhi
日期:2016-06-17 17:59:31平安夜徽章
日期:2015-12-26 00:06:30
17 [报告]
发表于 2015-06-26 10:47 来自手机 |只看该作者
论坛是大家讨论学习的地方,有不同意见请阐述出来,但是请注意你的语气。不要一上来就喷,把论坛当成你发泄生活不满的地方。在我的回复中没有任何吐槽Stl,关于编译器我用过vc6,vs2005,vs2008,vs2012,工作中一直用2012。你试试代码量上去后的编译时间,还有最后一个问题,容器拷贝,可以借鉴COW机制。

论坛徽章:
154
2022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16赛季CBA联赛之深圳
日期:2022-11-02 14:02:4515-16赛季CBA联赛之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16赛季CBA联赛之八一
日期:2023-11-04 19:23:5115-16赛季CBA联赛之广夏
日期:2023-12-13 18:09:34
18 [报告]
发表于 2015-06-28 13:55 来自手机 |只看该作者
感觉stl挺好的,这样有更多的精力处理上层业务,软件工业的标准件


看了sizeof string后,感觉不同平台会有不同的结果感觉很蛋疼

论坛徽章:
44
15-16赛季CBA联赛之浙江
日期:2021-10-11 02:03:59程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-16赛季CBA联赛之新疆
日期:2016-04-25 10:55:452016科比退役纪念章
日期:2016-04-23 00:51:2315-16赛季CBA联赛之山东
日期:2016-04-17 12:00:2815-16赛季CBA联赛之福建
日期:2016-04-12 15:21:2915-16赛季CBA联赛之辽宁
日期:2016-03-24 21:38:2715-16赛季CBA联赛之福建
日期:2016-03-18 12:13:4015-16赛季CBA联赛之佛山
日期:2016-02-05 00:55:2015-16赛季CBA联赛之佛山
日期:2016-02-04 21:11:3615-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
19 [报告]
发表于 2015-06-28 20:21 |只看该作者
回复 18# shang2010

string.length()相同就行了呗,sizeof不一样有什么蛋疼的?你真的要用这个数字?

论坛徽章:
0
20 [报告]
发表于 2015-06-29 12:53 |只看该作者
本帖最后由 wwwsq 于 2015-07-01 14:25 编辑

1、你是否完整的了解过C++98: 2003 标准下的STL设计和实现,并且对你产生了怎么样的影响?
    了解过。STL为了达到通用性,付出了太多代价。但是仍然没能防止SGI和微软各自推出自己的版本,而且STL的通用性和兼容性仍然十分有限。所以STL的根本思路也许有点问题。应该向CLR和JVM学习一下。

2、你是否认同在开发同应该尽量使用STL,而不是自信的经常重复造轮子?
    要适可而止。STL并不是那么通用。恰当的使用一下list、vector之类的是有益的。用太多则常常是有害的。因为这个度不好把握,因此很多公司反而禁止使用STL。  

3、你对C++11标准下的STL有什么样的期望,新的STL特性目前有使用吗?
    希望能提高STL代码的可读性,以及编译错误的可读性。

4、对你来讲STL还有哪些是急需改进的地方。
    a、尽快引入Concept。b、可裁剪可配置。c、加快编译速度。

5、对于STL的未来你的预期是什么样的?
    STL会逐渐死去。


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP