STL (C++)

STL (C++)

标准模板库(STL,即Standard Template Library),是一个C++软件库,也是C++标准程序库的一部分。

c++中,对于map类型,为什么说下标操作要比insert操作多不必要的初始化?(使用insert成员可避免使用下表操作所带来的副作用:不必要的初始化,这句话来源于c++ primer第313页)

2016-02-21 •

在看侯捷的《STL源码剖析》的时候,说sgi版本的STL的内存管理使用了内存池。但我在Visual studio写了测试代码并且去调试跟踪后,发现它就是使用了简单的allocate, deallocate进行内存管理,并没有使用内存池。请问是这样的么?

2014-04-03 •

最近看g++(4.8.1)里面带的一份stl,里面vector的设计采用的大概是如下结构

  
struct vector_base
{ //申请和释放内存,但不初始化
...
struct vec_impl:public Tp_alloc
{//RAII?
poi...

2013-08-25 •

  
#include "iostream"  
#include "vector"
using namespace std;

int main(void)
{
vector<int>array;
array.push_back(100);
a...

2013-05-02 •

看到hash表线性探测中二次探测这个地方时,有点疑问:

二次探测法能够保证每次探测都必然是一个不同的位置?还有,二次探测法能够保证如果表格之中没有X,那么我们插入x一定能够成功?

还有,《STL源码剖析》中提到,如果我们假设表格大小是质数,而且永远保持负载系数在0.5一下(也就是说超过0.5就重新配置并重新整理表),那么可以确定每插入一个新元素所需要的探...

2013-03-30 •

比如
数组a a[0]=1 a[1]=5 a[2]=3 a[3]=2 a[4]=4
数组b b[0]=2 b[1]=1 b[3]=5 b[4]=3 b[5]=7
对数组a从小到大排列 要求数组b与排序后的a对应(对应关系就是排序前的对应关系)
就是说
排序后
a[0]=1 b[0]=2
a[1]=2 b[1]=3
a[2]=3 b[2]=5
a[3]=4 b...

2013-01-28 •

  
//一维数组的引用传递
#include <iostream>
#include<string>
using namespace std;
template<class T,int size>
void Print(const T (&a)[size])
{
...

2013-01-02 •

如题,在STL源码中看到的~定义这个结构体有什么作用呢?

2012-12-16 •

SGI STL中的节点和迭代器都是双层设计,即定义一个基类,然后同基层定义一个子类。

节点:

  
struct __slist_node_base
{
__slist_node_base* next;
};
template <class T>
struct __slist_node : ...

2012-12-14 •

本人学习C++近2年了,对面向对象程序设计和STL泛型编程有一定基础,但是代码量不是特别多。平时编程也没有用到高级的面向对象和泛型编程的技巧。现在想找源码读下,通过阅读别人的优质代码提升自己的水平。这段时间看STL源码剖析,硬着头皮勉强能够看懂。

大家能推荐一些经典的、代码量不是特别大、易于阅读的源码吗?感谢~

2012-12-07 •

热点用户排行

话题状态

最近活动:很久很久以前
该话题下的问题共被浏览 164442 次