C++ 容器和算法(1)
“泛型算法”:
1.算法可以作用于不同的容器类型。
2.容器容纳多种不同类型元素
顺序容器: vector list deque(全称double-ended queue)
适配器: stack queue priority_queue
定义: vector<string> svere;
C c(b,e)当[b,e) 左开右闭之间的元素。
C c(n,d)初始化n个d
复制构造 vector<int> ivec; vector<int> ivec2(ivec)
利用迭代器传递不同的类型容器之间的数据
Vector<string>::iteratormid=svec.begin()+svec.size()/2;
Deque<string> front(svec.begin(),mid);
什么类型可以做容器的元素类型( 可复制,可赋值) //引用不行 IO也不行
测试列子:
Vector<Foo> empty;
Vector<Foo> bad(10);
Vector<Foo> ok(10,1);
其中Foo 无默认构造函数 , 但有int型形参构造函数.
class Foo
{
public:
int data;
Foo(int a){this->data=a;}
};
int main()
{
//vector<Foo> foo1(10,1);//对 创建个值为的foo1顺序表
//vector<Foo> foo2(10); //错 没有默认无参构造函数
//vector<Foo> foo3; //对 根本没有调用任何构造函数
//Foo f();//像是声明了一个函数 这可不是对象实例化哦因为没有f()这个构造函数
Foo f;//直接报错因为没有无参构造函数
//Foo *f=new Foo();//报错同上
//Foo *f=new Foo;//报错同上
getchar();
return 0;
}
二维嵌套
Vector< vector<string> >lines; // > >之间一定要加空格,不然会当成>>位移运算符
迭代器和迭代器范围
Vector 和deque 迭代器可以 iter+n iter-n
List不能随机访问,不能作比较 < >之类的
迭代器范围
End指向最后一个元素的下一个位置
[begin,end)
Size_type iterator const_iterator
c.begin() c.end()c.rbegin()翻转 c.rend()
c.push_back(x) c.insert(p,t)c.push_front(x)(只能list和deque) c.insert(p,n,t)
更新后注意重置迭代器
While(first!=v.end())
{
First=v.insert(++first,42);
++first;
}
c.resize(n,t) 调整为n,用t来补充不够的
list<int>::referencelast=*list.begin();
last为引用
c[n]c.at(n) 可以用(vector deque)
c.pop_back() 删除容器c的最后一个元素
c.pop_front() 只适用于list deque
P286
分享到:
相关推荐
标准库为容器类型定义的操作很少...所谓“泛型”是指这些算法可以应用于多种容器类型上,而容器内的元素类型也可以多样化。标准库提供了100多个泛型算法,主要定义于头文件中,还有一组泛化的算术算法定义于头文件中。
基本语法 标准库string类型 标准库vector类型 数组和指针 异常机制 函数 标准IO库 ...容器和算法 关联容器 泛型算法 类和数据抽象 复制控制 重载操作符与转换 面向对象编程 模版与泛型编程
数据 + 算法 = 程序 数据即对象,算法即方法。 C++是C语言的超集,C扩充之后就变成了C++。 C++是面向对象的编程,C语言是面向过程。
标准库里定义了三种类型:vector(支持快速随机访问)、list(支持快速插入、删除)、deque(双端队列)容器只定义了少量操作,大多数额外的操作由算法库提供。容器内元素的类型约束;1、元素类型必须支持赋值运算;2、...
为每一种容器增加很多功能,显然是不合算的。实际上,库为所有的容器提供了通用的算法,来操作容器和容器的元素。
C++primer5笔记代码资料 STL 源码剖析 再硬核|5 千字长文+ 30 张图解 | 陪你手撕 STL 空间配置器源码 硬核|万字长文炸裂!手撕 STL 迭代器源码与 traits 编程技法 超硬核 | 2 万字+20 图带你手撕 STL 序列式容器源码...
c++primer顺序容器与关联容器的一些用法 effective c++ - effective c++笔记归纳 Data Structures and Algorithm Analysis 数据结构与一些算法,来自算法导论,数据结构与算法分析-C语言描述,C Primer Plus, 数据...
notec/c++、算法、刷题、工具使用等计算机相关的学习笔记语言文件简介参考《c primer plus》参考《c++ primer》python刷题文件简介leetcode的刷题记录牛客网上的刷题记录写作文件简介轻量级标记语言排版工具工具文件...
笔记 编译时使用-std=c++11 (可选: -pedantic -Wall )标志,g++ -std=c++11 -o out template.cc。 本书所有代码源均可从。 目录 第 1 章入门 第一部分:基础知识 第 2 章变量和基本类型 第 3 章字符串、向量和数...
STL,算法基础,qt,exploit,Arduino,嵌入式,课设,java索引QT practice //QT 练习代码LinuxHelloWorldsignalslotc++ primer plus//《C++ primer plus》笔记及练习代码c++ programming style//《C++ 编码风格》...
pdf(3) chm(3) java(2) android(2) 设计(1) jsp(1) jsp语法(1) 第二版(1) 中文(1) cprimer(1) c++(1) 《javascript源码(1) hello(1) sdk(1) ui设计技巧(1) android应用开发入门与实战(1) 和开发模式详解(1) andriod...
数据结构与算法),希望通过这个名字来告诫我,数据结构和算法很重要,即使工作中用的比较少,但是它能够调整写代码时的心态。同样的代码,不同人写出来却千差万别。 《C++ Primer Plus》: 学习数据结构和算法,...
C ++ Primer解决方案第五答案 概述 该项目仅包括C ++ Primer 5th的第8章至第19章的解决方案。 环保环境 WSL Ubuntu 20.04 编译器 gcc 9.3.0 编辑 Visual studio code 语境 第二部分:C ++库 第9章顺序容器 第10章...
《C++ Primer》学习札记 C++学习札记(十)关联容器 C++学习札记(十二)动态内存 C++学习札记(十三)拷贝控制 C++进阶及面试必备 命名空间 四种强制类型转换 操作系统面试送分题 什么是程序?什么是进程?它们...
primer plus》 6th edition 书内习题答案总结 , 优秀源码赏析 快速平方根算法 kilo (1000行的源文本编辑器) 个人项目 学生管理系统 基于socket的网络文件传输 (C/S结构) C++ 参考书籍 《A Tour of C++》 《STL源码...
c++primer习题答案 leetcode动画展示 编程everything related 资源库 资源库 简单背后的原理,适合面试 开源开发者 效率工具 related vim工具,看起来好用的样子 git技巧 android related android实用util android学习...
想投图形学相关的岗位,在分析了之前实习面试时候的问题之后,我觉得应该将精力放在图形学、c++语言特性以及算法数据结构上。 c++:七月初开始一天看一章c++ primer,7.4回家之后花了五六天看完了cpp primer,但是...
2012-06-11 21:03 340,134 C++ Primer Plus.第五版.习题解答和例题代码.rar 2012-06-11 21:03 956,190 C++ Primer中文版(第4版)中的源代码.rar 2012-06-11 21:12 1,386,523 C++-打飞机的游戏.rar 2012-06-11 21:06 ...
常规说明 :fire: C :heavy_plus_sign: :heavy_plus_sign: :sparkles: :sparkles: :eyes:最近在研究golang了,已经转到 ,喜欢...对Cpp Primer的学习笔记以及部分实现。以及研读有效的C ++ 55个项目 CSS 尝试读了一
ASP.NET常见问题集锦.zip . .. .net中中文乱码问题解决.txt ADO.NET 与 XML:双剑合壁,威力强大.doc ... ASP.NET ViewState 初探.doc ASP.NET Web 方法中的 ... 面向对象设计(OOD)思想(C#) - c-c++ - CSDN