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

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

浏览 27660 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (5)
作者 正文
   发表时间:2011-07-15  
prettyinsight 写道
感觉无论是用C还是C++写的系统都会自己去实现一套string,链表以及其他的一些数据结构。泛型容器虽然功能强大,但是感觉无用武之地。大家在实际项目中会使用STL吗?

你对stl要求太高了。
0 请登录后投票
   发表时间:2011-07-15  
Elminster 写道
自己实现一套 string 、链表和其他数据结构?在有 STL 的前提下这太蛋疼了 ⋯⋯


一點都不蛋疼,dll-export一個模板類風險太大了。
0 请登录后投票
   发表时间: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;
    ...
}



这个事就不太好说了⋯⋯
以我个人的观点,首先如果函数之间要传递字符串,那么最好是用 string 而不是 char* 指针,好处多多。需要调用遗留代码的时候那是没办法,但新写的函数还用 char* 当字符串参数,本来就该尽量避免。其次 NULL 指针不能用几乎是所有库函数的共同做法,因此 NULL 指针也常拿来表示一些特殊状态。CString 直接把它当空字符串,固然有时候可以省一个检查方便些,但是否妥当恐怕也难讲。
一家之言,仅供参考。
0 请登录后投票
   发表时间:2011-07-15  
evanmeng 写道
Elminster 写道
自己实现一套 string 、链表和其他数据结构?在有 STL 的前提下这太蛋疼了 ⋯⋯


一點都不蛋疼,dll-export一個模板類風險太大了。


没有一整套好使的 serialization 库撑着,dll export 任何复杂数据结构都很蛋疼 ⋯⋯
0 请登录后投票
   发表时间:2011-07-15  
Elminster 写道
evanmeng 写道
Elminster 写道
自己实现一套 string 、链表和其他数据结构?在有 STL 的前提下这太蛋疼了 ⋯⋯


一點都不蛋疼,dll-export一個模板類風險太大了。


没有一整套好使的 serialization 库撑着,dll export 任何复杂数据结构都很蛋疼 ⋯⋯


为什么 Windows C++ 编程这么多奇怪的问题?
0 请登录后投票
   发表时间:2011-07-17  
prettyinsight 写道
感觉无论是用C还是C++写的系统都会自己去实现一套string,链表以及其他的一些数据结构。泛型容器虽然功能强大,但是感觉无用武之地。大家在实际项目中会使用STL吗?

大量应用! STL不就是API库吗. 没有它, 好多好多的ADT得重新造, 我不认为能写得比标准库好. 实际上, 我的应用里还用boost.asio. 为什么不用那些专家帮我们写好经过测试的代码呢!

没有STL, 在好多场景下, 我们不得不用void和动态cast. 一个最明显的好处就是省代码, 不是吗?
0 请登录后投票
   发表时间:2011-07-17  
Solstice 写道
Elminster 写道
evanmeng 写道
Elminster 写道
自己实现一套 string 、链表和其他数据结构?在有 STL 的前提下这太蛋疼了 ⋯⋯


一點都不蛋疼,dll-export一個模板類風險太大了。


没有一整套好使的 serialization 库撑着,dll export 任何复杂数据结构都很蛋疼 ⋯⋯


为什么 Windows C++ 编程这么多奇怪的问题?


因为bill不能进gates.
0 请登录后投票
   发表时间:2011-07-18  
Solstice 写道
Elminster 写道
evanmeng 写道
Elminster 写道
自己实现一套 string 、链表和其他数据结构?在有 STL 的前提下这太蛋疼了 ⋯⋯


一點都不蛋疼,dll-export一個模板類風險太大了。


没有一整套好使的 serialization 库撑着,dll export 任何复杂数据结构都很蛋疼 ⋯⋯


为什么 Windows C++ 编程这么多奇怪的问题?

不是window,而是模板特性和链接机制共同带来的问题
string应该算是stl被诟病最多的实现
模板带来的链接问题导致以库暴露的接口都应该避免使用复杂的容器结构,不过这个也不能说是stl的问题,但却都是会牵扯到stl头上
0 请登录后投票
   发表时间:2011-07-18  
STL也太简陋了,看看Java的String上有多少方法。
0 请登录后投票
   发表时间:2011-07-18  
Solstice 写道
Elminster 写道
evanmeng 写道
Elminster 写道
自己实现一套 string 、链表和其他数据结构?在有 STL 的前提下这太蛋疼了 ⋯⋯


一點都不蛋疼,dll-export一個模板類風險太大了。


没有一整套好使的 serialization 库撑着,dll export 任何复杂数据结构都很蛋疼 ⋯⋯


为什么 Windows C++ 编程这么多奇怪的问题?



...这位是不是只知道VC++?
0 请登录后投票
论坛首页 编程语言技术版

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