`
kmplayer
  • 浏览: 512217 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通用容器1

阅读更多
1,一个容器描述了一个持有其他对象的对象.
2,c++处理容器采用基于模板的方式.
3,针对不同的需要有不同类型的容器:如vector高效访问元素,list高效插入.
4,容器持有对象的要求:(1)可拷贝;(2)可赋值.
5,容器与容器的区别:(1)内存中存储对象的方式;(2)向用户提供了什么样的操作.
6,容器分类总结:
(1)序列容器(vector,list,dequeue):将元素线性的组织起来.
(2)容器适配器(queue,stack,priority_queue):序列附上某些特殊的属性.
(3)关联式容器(map,set,multiset,multimap):用关键字组织数据,允许快速访问.
7,如果容器是一个const容器,则begin()和end()产生const迭代器.
即:不允许更改这些迭代器指向的元素.
8,可逆容器的迭代器:rbegin(),rend().
实例代码:(将读入的文件,行倒序输出)
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main()
{
    ifstream in("main.cpp");
    string line;
    vector<string> lines;
    while(getline(in, line))
    lines.push_back(line);
    for(vector<string>::reverse_iterator r = lines.rbegin();r != lines.rend(); r++)
        cout << *r << endl;
    return 0;
}

9,不同类型插入器的使用.
实例代码:
#include <iostream>
#include <vector>
#include <deque>
#include <list>
#include <iterator>
using namespace std;

int a[] = { 1, 3, 5, 7, 11, 13, 17, 19, 23 };

template<class T>
void frontInsertion(T& c)
{
    copy(a,a+sizeof(a)/sizeof(a[0]),front_inserter(c));
    copy(c.begin(),c.end(),ostream_iterator<typename T::value_type>(cout," "));
    cout<<endl;
}

template<class T>
void backInsertion(T& c)
{
    copy(a,a+sizeof(a)/sizeof(a[0]),back_inserter(c));
    copy(c.begin(),c.end(),ostream_iterator<typename T::value_type>(cout," "));
    cout<<endl;
}

template<class T>
void midInsertion(T& c)
{
    typename T::iterator it = c.begin();
    ++it; ++it; ++it;//从第四个位置插入
    copy(a, a + sizeof(a)/sizeof(typename T::value_type),inserter(c, it));
    copy(c.begin(),c.end(),ostream_iterator<typename T::value_type>(cout," "));
    cout << endl;
}

int main()
{
    vector<int> vec;
    list<int> lst;
    deque<int> deq;

    frontInsertion(deq);
    frontInsertion(lst);

    deq.clear();
    lst.clear();
    backInsertion(vec);
    backInsertion(deq);
    backInsertion(lst);

    midInsertion(vec);
    midInsertion(deq);
    midInsertion(lst);
    return 0;
}

10,比较流迭代器和流缓冲迭代器的使用:
实例代码:
#include <algorithm>
#include <fstream>
#include <iostream>
#include <iterator>
using namespace std;

int main()
{
    ifstream in(__FILE__);

    //注:都是直接操作字符
    istreambuf_iterator<char> isb(in), end;
    ostreambuf_iterator<char> osb(cout);
    while(isb != end)
        *osb++ = *isb++; // Copy 'in' to cout
    cout << endl;

    //使用流迭代器,将会吃掉空白字符.
    ifstream in2(__FILE__);
    istream_iterator<char> is(in2), end2;
    ostream_iterator<char> os(cout);
    while(is != end2)
        *os++ = *is++;
    cout << endl;
}


分享到:
评论

相关推荐

    GB 150.1-2011 压力容器 第1部分:通用要求

    根据提供的标题“GB 150.1-2011 压力容器 第1部分:通用要求”以及描述“GB 150.1-2011 压力容器 第1部分:通用要求”,我们可以了解到该标准是中国国家标准(GB),主要针对压力容器的通用要求进行规范。...

    容器通用算法和迭代器

    STL中的通用算法是一系列独立于容器的函数,可以用于处理各种容器内的元素。常见的通用算法有: 1. `std::sort`:对容器内的元素进行排序。 2. `std::find`:查找容器中是否存在特定元素。 3. `std::count`:统计...

    罐头食品金属容器通用技术要求.pdf

    罐头食品金属容器通用技术要求.pdf

    通用红黑树(Tree-Map)容器纯C实现

    纯C实现的通用红黑树容器不好找,于是自己琢磨着实现了一个。 算法部分直接剪裁自Linux内核中的rbtree 作者主要是在此基础上封装了一个通用的容器 里面含有 test例子 以及 benchmark基准测试 另外这个是Windows和...

    压力容器制造通用检验规程完整.pdf

    压力容器制造通用检验规程完整.pdf

    容器通用零部件PPT教案.pptx

    在工业设计与制造领域,容器通用零部件是构成各类压力容器和管道系统的基础元素。容器通用零部件的标准化、系列化设计,不仅有助于提高设计效率和质量,而且对于保证系统的安全运行至关重要。本篇文章将深入探讨容器...

    GB 150-2011 压力容器标准

    此外,还涉及了压力容器的使用寿命、腐蚀裕量、疲劳强度以及压力容器在极端环境下的适应性等通用性问题。 第二部分:材料 这一部分详细阐述了压力容器所用材料的选择和验证。它规定了钢材和其他金属材料的种类、...

    数据容器通用操作的具体代码

    数据容器通用操作的具体代码

    C++顺序容器,容器适配器,关联容器的操作

    泛型算法是一组通用的操作,定义在`&lt;algorithm&gt;`头文件中。这些算法不会直接修改容器的大小或删除元素,而是对容器中的元素进行操作。例如`sort`、`reverse`等。 #### 七、关联容器的操作 - **插入操作**:`insert`...

    压力容器通用工艺守则资料.pdf

    压力容器通用工艺守则资料.pdf

    压力容器制造通用工艺规程.doc

    《压力容器制造通用工艺规程》是针对承压设备制造过程中的一项重要规范,旨在确保压力容器的安全性和可靠性。此规程详细规定了压力容器制造中的射线照相检测方法、底片质量和质量分级要求,以及相关工作人员的资格和...

    压力容器制造通用工艺守则详述.doc

    《压力容器制造通用工艺守则》正是为了指导和规范压力容器的制造过程而制定的详细标准文件。 首先,守则对原材料的选择提出了严格的要求。材料必须符合设计图样和相关标准的规定,并且要带有清晰的本厂材料标记。在...

    GB压力容器通用要求新GB宣贯教材PPT学习教案.pptx

    《GB压力容器通用要求新GB宣贯教材》便是为了适应这一发展需求而编写的教学材料,它涵盖了GB150压力容器标准的最新修订内容,并以此为基础,对压力容器的设计、材料选择、制造工艺及检验验收进行了全面系统的阐述。...

    储罐类容器制造通用工艺规程.doc

    为此,《储罐类容器制造通用工艺规程》的出台,无疑为相关制造厂商提供了一份详细的作业指南,旨在确保储罐类容器从选材、设计、制造、检验至最终验收的每个环节都能达到既定的技术和质量标准。 在现代工业生产中,...

    压力容器图样设计技术通用规定.doc

    《压力容器图样设计技术通用规定》是针对压力容器设计人员的重要指导文档,它规定了设计和绘制施工图的基本准则,确保了设计的规范性和一致性。该规定涵盖了多个方面,旨在确保压力容器的设计符合国家和行业的最新...

    不锈钢容器制造通用工艺守则.doc

    为了确保不锈钢压力容器的质量安全,一套系统性的制造通用工艺守则显得尤为重要。《不锈钢容器制造通用工艺守则》正是为了这一目的而制定,涵盖了材料的验收与存储、制造环境的控制、制造过程中的具体操作等诸多方面...

    储罐类容器制造通用工艺设计规程.doc

    储罐类容器制造通用工艺设计规程.doc

    压力容器制造通用检验规程完整.docx

    【压力容器制造通用检验规程】 压力容器制造过程中,质量控制是至关重要的环节,这涉及到生产安全和产品质量。本文档详细阐述了压力容器制造通用检验规程,涵盖了从原材料选购到最终产品的出厂检验。以下是对规程中...

Global site tag (gtag.js) - Google Analytics