关于STL的意义

    STL封装了一堆底层的算法,但是为什么很多学C++都对STL崇拜不一,想问一下大家觉得STL最大的意义在哪里?
    C++有没有关于数据库方面的库?

       C++是一门很棒的语言,唯一的缺陷就是相关的库太少,不是因为大家不想为它写库,而是它的库很难写。而STL是C++v的标准模板库,里面封装了很多经典的算法,再加上是基于模板的,适用于多种数据类型,某种程度上说是通用算法,所以它在C++中的地位很高。
 
    STL的意义就在于它为我们提供了很多很好的“零件”,我们可以用它开发自己的“车”!
而且STL制造的“零件”是那么的优良(空间效率和时间效率都是非常不错的,要不c++又怎么会
把它纳入标准呢,呵呵),决非一些做工粗糙的国产货(呵呵,没有BS国产的意思,不过民族企
业还是需要努力!)
    学STL的意义就在于它为我们提供了很多很好的“零件”,我们可以用它开发自己的“车”!
而且STL制造的“零件”是那么的优良(空间效率和时间效率都是非常不错的,要不c++又怎么会
把它纳入标准呢,呵呵),决非一些做工粗糙的国产货(呵呵,没有BS国产的意思,不过民族企
业还是需要努力!)

    学c++不学STL(现在叫标准程序库或许好点,后者对STL有所改进,应该算是STL的超集),肯定算遗憾,可惜现在很多学校并不知道,学校教c++的时候,根本没有提到过STL
    不学STL(现在叫标准程序库或许好点,后者对STL有所改进,应该算是STL的超集),肯定算遗憾,可惜现在很多学校并不知道,学校教c++的时候,根本没有提到过STL
    还有我觉得c++的库之所以难写,与c++标准在各个编译器厂商的实现并不统一有很大关系!
比如微软为了推销自己的c++编译器,可能写了一些很多自己的库,但是出于商业的目的这些库
拿到borland的c++编译器就不一定好用!同样的事情也可以发生在borland对microsofe身上!
这样就造成了库使用的不方便~
    对比c++,java就做的不错,其实java之所以这么成功与java丰富的库是离不开的,java标准属
于sun公司(商业性很强的公司),所以的jvm都严格执行sun的java标准,所以所有为java开发
的库都可以很方便的在各种版本的jvm上执行,这样我们使用起库来就很方便了~
    C++ 除了STL 还有一些其他的开源库,这些东西为我们开发提供了极大的方便,
让程序员能把更多的经历投入到软件的实现上去,而不必在语言和算法上花太多的精力。
    STL 很大程度上= vector + basic_stream + basic_string
    由stl开始了泛型编程
    对我这样的懒人来说,没有别的,就是方便,
    比如:
#include <iostream>
#include <map>
#include <string>
int main(void)
{
    using namespace std;
    typedef map<std::string, size_t >  word_count_t;
   
    word_count_t  wc;
   
    string word;
    while(cin>>word){
        ++wc[word];
    }
   
    word_count_t::const_iterator itr;
    for(itr = wc.begin(); itr != wc.end(); ++itr){
        cout << itr->first <<" " << itr-> second <<endl;
    }
}
    这样,就可以统计一本书中各单词的出现频率,效率没得说
有时意义问得太多了,反而会迷失真正需要作的东西
    STL的伟大不仅在于它提供了大量常用的数据结构和许多经典算法,而且因为他提供迭代器:你可以利用迭代器概念,写出自己的迭代器,对一些不是用GP写的数据结构,也能很好的使用;而且,他可以让你自己去扩充库,并且与现有的库可以很好的配合使用。





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值