【你问我答】STL难在哪?学习时该注意哪些点?

问题描述:

STL难在哪?学习时该注意哪些点?

回答有奖:

选取一位认真回答问题的牛友,赠送200牛币!

你问我答问题汇总:点击进入

------------
#我也有问题想询问牛友,怎么办?

欢迎私信@筱茜 说明你的问题,将根据问题具体情况排期进入【你问我答】专场~
私信请注明参与【你问我答】专场哦~

你问我答 - 答问题,成大佬,拿牛币!
你问我答是牛客新栏目,每周1期几个问题,
牛友在问题贴下留下自己的知识,经验与见解,
帮助更多牛友了解更多技术相关知识!
#悬赏#
全部评论
不难
点赞 回复
分享
发布于 2019-05-07 18:43
写一个STL一样的类库难。 俗称造轮子 而用好STL中的方法不难。 俗称调api。
点赞 回复
分享
发布于 2019-05-07 20:37
联想
校招火热招聘中
官网直投
       STL 各种容器增删改查并不难,看看文档或书籍很快就能上手,真正的难点在于根据实际的需要选择合适的容器。由于STL的容器本身就是对一些常用的数据结构的封装,所以需要知道这些容器对应的数据结构是什么以及它有什么特性,这样才能高效、准确地使用 STL 。在面试中经常问的就是 vector(扩容机制) 以及 map (红黑树的原理),如果想深入学习,可以看看侯捷的《STL源码剖析》。
点赞 回复
分享
发布于 2019-05-08 00:33
STL主要由六大组件构成。这六大组件是: 容器(Container) 难点就是:对不同容器数据元素的增删、查找所体现的不同时间复杂度 。         序列容器:vector、list、deque       关联容器:set、map、multiset、multimap       适配器容器:stack、queue、priority_queue 算法(algorithm)是对数据的具体操作:比较、交换、查找、遍历操作、复制、修改、移除、反转、排序、合并。注意不同的算法操作导致的不同时间复杂度。 迭代器(iterator)类模板实现重载了* ,-> ,++ ,-- 等运算符 仿函数(functor)用类模板实现,重载了符号"()",是对算法的扩展。 适配器(adapter)容器适配器,迭代器适配器,函数适配器 配置器(allocator)STL内存配置器为容器分配并管理内存。 综上所诉:STL难在不同容器不同容器数据元素的增删、查找所体现的不同时间复杂度 ,不同算法对数据操作的时间复杂度,所以选择业务中的容器和算法是该注意的点。
点赞 回复
分享
发布于 2019-05-09 10:05
STL其实没有想象中的难。就我个人经验来说,使用c++的过程当中stl是用的最多的,在一开始你总会觉得会用就行,但是不然当你想要进阶的时候深入的去看一些实现细节是必不可少的。所以我建议,首先一个多用stl无论是刷题当中还是工程当中。然后推荐大家去看stl源码剖析,这本书基本罗列了所有的结构和实现方式包括使用模板元编程的细节。当然我建议大家先对模板元编程有一个了解,他是一种思想也是一种工具。最后就是多总结多做笔记将遇到的结构专门记录,从api的使用方式总结到原理总结,多问为什么,学习的才会又快又好。
点赞 回复
分享
发布于 2019-05-11 18:50
不难
点赞 回复
分享
发布于 2019-05-07 19:29
不难+1
点赞 回复
分享
发布于 2019-05-07 20:04
学习时该注意面试会问什么🤔无非红黑树,vector底层(
点赞 回复
分享
发布于 2019-05-08 00:42
STL六大部分: 容器(containers) 迭代器(iterators) 空间配置器(allocator) 配接器(adapters) 算法(algorithm) 仿函数(functors) 都弄清楚也不容易。
点赞 回复
分享
发布于 2019-05-08 10:42

相关推荐

点赞 3 评论
分享
牛客网
牛客企业服务