斯坦福CS106L-Containers

  • Sequential Containers(连续容器)



vector在后面添加数据比较快,在前面添加数据比较慢,需要将前面的移动到后面。但是vector索引的时候比较快

std::deque是两端队列

  • Associative Container(配对容器)
    用键值而不是indexes进行获取
    vector> 不够快
    std::map
    A set is just a specific case of a map that doesn’t have a value




  • 迭代
    由于配对容器没有固定的次序,所以C++用迭代器解决这个问题
    迭代器的使用,具体看第4课课件。


  • 迭代适配器
    比迭代器更加抽象,迭代适配器指的是可以用其来依次怎么样,而不必事先存在空间。
    两种迭代器适配器

1、依次输出到流

    std::ostream_iterator iter(cout, ", ");
    *iter = 15;
    ++iter;
    *iter = 1;

2、以插入的形式进行迭代
旧的迭代方式,需要先分配好容器。

vector v {561, 1105, 1729, 2465};
vector vCopy(v.size());
std::copy(v.begin(), v.end(), vCopy.begin());

新的迭代方式,复制的时候是以插入的形式

vector v {561, 1105, 1729, 2465};
vector vCopy;
std::copy(v.begin(), v.end(),std::back_inserter(vCopy));
  • STL抽象


你可能感兴趣的:(斯坦福CS106L-Containers)