锁定老帖子 主题:感觉C++的STL就是鸡肋啊
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (5)
|
|
---|---|
作者 | 正文 |
发表时间:2011-07-11
night_stalker 写道 都不支持UTF-8, 完全不能 iterate code point ...
吼吼~ std::string 当然不能和Ruby的String比啊,但是,相对于C,已经方便了不少。:) |
|
返回顶楼 | |
发表时间:2011-07-11
skandhas 写道 night_stalker 写道 都不支持UTF-8, 完全不能 iterate code point ...
吼吼~ std::string 当然不能和Ruby的String比啊,但是,相对于C,已经方便了不少。:) c其实是没有所谓的string的...所以当然看起来麻烦.. |
|
返回顶楼 | |
发表时间:2011-07-12
我觉得新项目,没有历史包袱的尽量用stl库
|
|
返回顶楼 | |
发表时间:2011-07-12
说stl是鸡肋,那boost算什么哇
|
|
返回顶楼 | |
发表时间:2011-07-12
STL模板库相当不错,比自己写节省工时,而且可靠
|
|
返回顶楼 | |
发表时间:2011-07-12
hittyo 写道 说stl是鸡肋,那boost算什么哇
boost是很好用的东西 shared_ptr, crc..asio 大量使用之... |
|
返回顶楼 | |
发表时间:2011-07-12
mathgl 写道 hittyo 写道 说stl是鸡肋,那boost算什么哇
boost是很好用的东西 shared_ptr, crc..asio 大量使用之... 用shared_ptr管理感觉一点也不比有GC的语言麻烦..而且生命周期自己掌控的感觉更舒服 asio让新手都可以实现异步socket.. boost真的很爽 |
|
返回顶楼 | |
发表时间:2011-07-14
Elminster 写道 强强爱妍妍 写道 std::string s = NULL;
这tmd会抛异常,无形中增加了很多参数check的代码,气愤! 为什么要这样用?一般来说,常见的情况是用 string 的新的胶水代码去调用接受 const char* 的老 API,反过来构造的情况不多吧? 给你一个char *的参数,然后你要传递给使用std::string类型的接口,这样不得不从char *转到string吧? char *允许NULL, 为啥std::string要抛个异常? 脑子都给异常吃了! CString就很好,它知道我们给它NULL的意思表示空字符串. |
|
返回顶楼 | |
发表时间:2011-07-14
强强爱妍妍 写道 Elminster 写道 强强爱妍妍 写道 std::string s = NULL;
这tmd会抛异常,无形中增加了很多参数check的代码,气愤! 为什么要这样用?一般来说,常见的情况是用 string 的新的胶水代码去调用接受 const char* 的老 API,反过来构造的情况不多吧? 给你一个char *的参数,然后你要传递给使用std::string类型的接口,这样不得不从char *转到string吧? char *允许NULL, 为啥std::string要抛个异常? 脑子都给异常吃了! CString就很好,它知道我们给它NULL的意思表示空字符串. :) 在 C++中,为一个变量赋NULL,那代表这个变量是指针。 std::string val = "";或是 std::string val; 都可以。 |
|
返回顶楼 | |
发表时间:2011-07-15
最后修改:2011-07-15
jinti 写道 强强爱妍妍 写道 给你一个char *的参数,然后你要传递给使用std::string类型的接口,这样不得不从char *转到string吧? char *允许NULL, 为啥std::string要抛个异常? 脑子都给异常吃了! CString就很好,它知道我们给它NULL的意思表示空字符串.
:) 在 C++中,为一个变量赋NULL,那代表这个变量是指针。 std::string val = "";或是 std::string val; 都可以。 你没看懂我的意思哇. 以你的例子说,val用一个char *类型的参数来初始化. 这时必须检查这个char *参数是否为NULL. void foo(char* bar) { //当bar是NULL的时候就悲剧了 std::string s = bar; ... } |
|
返回顶楼 | |