STL封装了一堆底层的算法,但是为什么很多学C++都对STL崇拜不一,想问一下大家觉得STL最大的意义在哪里?
C++有没有关于数据库方面的库?
C++有没有关于数据库方面的库?
C++是一门很棒的语言,唯一的缺陷就是相关的库太少,不是因为大家不想为它写库,而是它的库很难写。而STL是C++v的标准模板库,里面封装了很多经典的算法,再加上是基于模板的,适用于多种数据类型,某种程度上说是通用算法,所以它在C++中的地位很高。
STL的意义就在于它为我们提供了很多很好的“零件”,我们可以用它开发自己的“车”!
而且STL制造的“零件”是那么的优良(空间效率和时间效率都是非常不错的,要不c++又怎么会
把它纳入标准呢,呵呵),决非一些做工粗糙的国产货(呵呵,没有BS国产的意思,不过民族企
业还是需要努力!)
学STL的意义就在于它为我们提供了很多很好的“零件”,我们可以用它开发自己的“车”!
学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>
比如:
#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;
}
}
{
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写的数据结构,也能很好的使用;而且,他可以让你自己去扩充库,并且与现有的库可以很好的配合使用。