论坛首页 编程语言技术论坛

感觉C++的STL就是鸡肋啊

浏览 27663 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (5)
作者 正文
   发表时间:2011-07-11  
night_stalker 写道
都不支持UTF-8, 完全不能 iterate code point ...

吼吼~ std::string 当然不能和Ruby的String比啊,但是,相对于C,已经方便了不少。:)
0 请登录后投票
   发表时间:2011-07-11  
skandhas 写道
night_stalker 写道
都不支持UTF-8, 完全不能 iterate code point ...

吼吼~ std::string 当然不能和Ruby的String比啊,但是,相对于C,已经方便了不少。:)



c其实是没有所谓的string的...所以当然看起来麻烦..
0 请登录后投票
   发表时间:2011-07-12  
我觉得新项目,没有历史包袱的尽量用stl库
0 请登录后投票
   发表时间:2011-07-12  
说stl是鸡肋,那boost算什么哇
0 请登录后投票
   发表时间:2011-07-12  
STL模板库相当不错,比自己写节省工时,而且可靠
0 请登录后投票
   发表时间:2011-07-12  
hittyo 写道
说stl是鸡肋,那boost算什么哇


boost是很好用的东西
shared_ptr, crc..asio 大量使用之...


0 请登录后投票
   发表时间:2011-07-12  
mathgl 写道
hittyo 写道
说stl是鸡肋,那boost算什么哇


boost是很好用的东西
shared_ptr, crc..asio 大量使用之...



用shared_ptr管理感觉一点也不比有GC的语言麻烦..而且生命周期自己掌控的感觉更舒服
asio让新手都可以实现异步socket..
boost真的很爽
0 请登录后投票
   发表时间: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的意思表示空字符串.
0 请登录后投票
   发表时间: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; 都可以。
0 请登录后投票
   发表时间: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;
    ...
}


0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics