zoukankan      html  css  js  c++  java
  • C++迭代器之'插入迭代器

    1. 定义

    插入型迭代器(Insert Iterator),又叫插入器(Inserter)。

    2. 作用

    插入迭代器的主要功能为把一个赋值操作转换为把相应的值插入容器的操作。
    算法库对所有在容器上的操作有约束:决不修改容器的大小(不插入、不删除)。有了插入迭代器,既使得算法库可以通过迭代器对容器插入新的元素,又不违反这一统带,即保持了设计上的一致性。

    3. 类型

    3.1 尾部插入器(back_insert_iterator)
    使用:通过调用容器的push_back()成员函数来插入元素
    功能:在容器的尾端插入元素
    限制:只有提供了push_back()成员函数的容器中
    适用:vector deque list


    3.2 头部插入器(front_insert_iterator)
    使用:通过调用容器的push_front()成员函数来插入元素
    功能:在容器的前端插入元素
    限制:只有提供了push_front()成员函数的容器中
    适用:deque list


    3.3 普通插入器(insert_iterator)
    使用:通过调用insert()成员函数来插入元素,并由用户指定插入位置
    功能:在容器的指定位置插入元素
    限制:STL容器都提供了insert()函数.
    适用:提供了insert()函数的STL容器

    例子:

     1 #include <iostream>
     2 #include <vector>
     3 #include <list>
     4 #include <iterator>
     5 #include <queue>
     6 #include <set>
     7 using namespace std;
     8 
     9 int main()
    10 {
    11     vector<int> V;
    12     list<int> L;
    13 
    14     for(int i = 0; i < 10; ++i)
    15         V.push_back(i %5);
    16 
    17 
    18 //back_inserter
    19     copy(V.begin(), V.end(), back_inserter(L));
    20 
    21     list<int>:: iterator it;
    22     for(it = L.begin(); it != L.end(); it++)
    23     {
    24         cout <<*it<<" ";
    25     }
    26     cout << endl;
    27 
    28 //    front_inserter
    29     deque<int> dq;
    30     copy(V.begin(), V.end(), front_inserter(dq));
    31 
    32     deque<int>:: iterator it1;
    33     for(it1 = dq.begin(); it1 != dq.end(); it1++)
    34     {
    35         cout <<*it1<<" ";
    36     }
    37     cout << endl;
    38 //     insert_iterator
    39     set<int> s;
    40     copy(L.begin(), L.end(), inserter(s, s.begin()));
    41     set<int>::iterator it2;
    42     for(it2 = s.begin(); it2 != s.end(); it2 ++)
    43     {
    44         cout<<*it2<<" ";
    45     }
    46 
    47     return 0;
    48 }

     

     

  • 相关阅读:
    weblogic weak_password 复现
    redis 4-unacc 复现
    Django debug page XSS漏洞(CVE-2017-12794)复现
    (CVE-2016-4437)Apache Shiro <=1.2.4 反序列化漏洞复现
    Apache SSI 远程命令执行漏洞复现
    Apache HTTPD 未知后缀解析漏洞复现
    s2-005复现
    05 跨站请求伪造漏洞CSRF
    安全大面
    JAVA基础学习day03--流程控制语句
  • 原文地址:https://www.cnblogs.com/Jadon97/p/6884067.html
Copyright © 2011-2022 走看看