zoukankan      html  css  js  c++  java
  • STL入门

    STL入门

    STL的组成

    六大组件

    容器container

    算法algorithm

    迭代器iterator

    仿函数function object

    适配器adaptors

    空间配制器allocator

    产生一个vector容器,并打印

     1 #include <iostream>
     2 #include <vector>//容器
     3 #include <algorithm>//算法
     4 
     5 template<class T>//实现一个类模板,专门实现打印的功能
     6 class myvectorprint
     7 {
     8 public:
     9     void operator()(const T &t)//重载()
    10     {
    11         std::cout << t << std::endl;
    12     }
    13 };
    14 
    15 void main()
    16 {
    17     std::vector<int> myvector;
    18 
    19     myvector.push_back(11);
    20     myvector.push_back(21);
    21     myvector.push_back(31);
    22     myvector.push_back(81);
    23     myvector.push_back(51);
    24 
    25     myvectorprint<int>print;//对于打印进行实例化
    26 
    27     for_each(myvector.begin(), myvector.end(), print);
    28 }

    产生一个array容器,并打印

     1 #include <iostream>
     2 #include <array>//容器
     3 #include <algorithm>//算法
     4 
     5 template<class T>//实现一个类模板,专门实现打印的功能
     6 class myvectorprint
     7 {
     8 public:
     9     void operator()(const T &t)//重载()
    10     {
    11         std::cout << t << std::endl;
    12     }
    13 };
    14 
    15 void main()
    16 {    std::array<int, 10>myarray = { 10,9,8,7,6,5,4,3,2,1 };
    17 
    18     myvectorprint<int>print;//对于打印进行实例化
    19 
    20     //begin,end是迭代器
    21     for_each(myarray.begin(), myarray.end(), print);//算法可以适用于任何容器,for_each是一个算法
    22 }

    容器container

    容易的分类

    1 序列式容器sequence containers

    每个元素都有固定位置-取决于插入时机的地点,和元素值无关。

    比如vector, deque, list

    2 关联式容器associated containers

    元素位置取决于特定的排序准则,和插入的顺序无关。

    比如set, multiset, map, multimap

    vector

    vector在堆上

    将元素置于一个动态数组中加以管理。

    可以随机存取元素(用索引直接存取)

    数据尾部添加或移出元素非常快速。但是在中部或头部安插元素比较费时。

  • 相关阅读:
    ioremap函数
    kmalloc、kzalloc和vmalloc
    C语言 snprintf函数
    C语言 memset函数
    消息队列
    mount -a
    linux系统查看服务状态和启动停止服务
    Java中创建对象的内存图
    Java中数组在内存中的图解
    socket编程(Java实现)
  • 原文地址:https://www.cnblogs.com/denggelin/p/5745022.html
Copyright © 2011-2022 走看看