【c++标准库笔记(二)侯捷老师课程】STL体系结构基础

一、STL六大部件

1.容器(Cnotainers)

2.分配器(Allocators)

3.算法(Algorithms)

4.迭代器(Iterators):泛化的指针

5.适配器(Adapters):转换器

6.仿函数(Functors):所创建的类进行加减

二、一个精简的栗子

三、复杂度

1.O(1)  O(c):常数时间

2.O(n):称为线性时间

3.O(log2n):称为次线性时间

4.O(n2),O(n3):平房时间,立方时间

5.O(2n):指数时间

6.O(nlog2n):介于线性及二次方成长的中间之行为模式

四、前闭后开区间

标准库的begin,指针指向第一个元素,end指向最后一个元素的后一个元素下一个位置。

1.遍历容器(旧方法)

container<T>::iterater ite = c.begin();//用iterater遍历某个容器
for (; ite != c.end(); ++ite ) 
/************************过去的写法*****************************/

2.遍历容器(新方法,c++11)range-based for statement

for (声明 : 容器) {
    statement 
}
for ( int i : { 2, 3, 5, 7, 9, 13, 17, 19 } ) {
    std::cout << i << std::endl;
} 
std::vector<double> vec;
...
for ( auto elem : vec ) {// elem是一个迭代器,取出后面vec的每一个元素
      std::cout << elem << std::endl;
}

for ( auto& elem : vec ) {//auto加上引用,取出的每个元素也是引用
      elem *= 3; //乘3
}

 

3.auto keyword

list<string> c;
...;
list<string>::iterator ite;
ite = :: find(c.begin(), c.end(), target);
list<string> c;
...
auto ite = ::find(c.begin(), c.end(), target);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值