简单重写容器vector】的更多相关文章

#pragma once #include <iostream> using namespace std; template<class T> class CMyVector { public: CMyVector() { buff = NULL; len = maxSize = ; } ~CMyVector() { _clear(); } size_t capacity(); size_t size(); bool empty(); void print(); //迭代器 str…
C++线性序列容器<vector>简单总结 vector是一个长度可变的数组,使用的时候无须声明上限,随着元素的增加,Vector的长度会自动增加:Vector类提供额外的方法来增加.删除元素,比数组操作高效. 头文件:#include <vector> 命名空间:using namespace std:vector 构造函数 vector<int>vec_int;         // 创建一个整形元素的vector vector<string>vec_s…
2.1实现简单基础的vector 1.设计API 我们参考下C++ <std> 库中的vector, vector中的api很多,所以我们把里面用的频率很高的函数实现; 1.1 new&delete new:     应该可以初始化一个我们需要的结构体指针并申请一段内存; delete:              不仅能够把new出来的内存完整\安全的销毁,而且可以把元素中可能出现的内存指针中申请的内存销魂; 1.2 常用的api append:     在数组的最末尾添加一个元素;…
上一节我们说到我们己经实现了一般Vector可以做到的自动扩充,告诉随机存取,那么现在我们需要完成vector的一个排序的功能. 排序算法我们网上一百度哇~~!很常见的就有8大排序算法: 1.选择排序 2.冒泡排序 3.插入排序 4.快速排序 5.归并排序 6.桶排序 7.堆排序 8.希尔排序 具体的思想本猿就不展开讲啦,现在C语言应用的场景大多数在服务器和嵌入式设备,服务器数据量大,嵌入式设备资源有限 两者是对时间复杂度和空间负责度的两个极端. 一开始我想要优化堆排序,使得堆排序的空间复杂度减…
servlet接口 使用servlet编程需要实现或者继承实现了javax.servlet.Servlet接口的类,其中定义了5个签名方法: public void init(ServletConfig config) throws ServletException public void service(ServletRequest req,ServletResponse res) throws ServletException,java.io.IOException public void…
直接抛出两句话,说明到底应该如何释放Vector占用的内存. “vector的clear不影响capacity,你应该swap一个空的vector.” <Effective STL>中的“条款17”指出: 当vector.string大量插入数据后,即使删除了大量数据(或者全部都删除,即clear) 并没有改变容器的容量(capacity),所以仍然会占用着内存. 为了避免这种情况,我们应该想办法改变容器的容量使之尽可能小的符合当前数据所需(shrink to fit).  释放方法 1.ve…
//简单重写原型对象: //一个构造函数Person function Person(){ } //重写Person的原型 //把Person的原型赋值给一个新的对象 是我们重写的过程 Person.prototype={ // 对于构造器 如果我们不给他写,则构造器就是Object的构造器了 constructor:Person, //加上构造器属性 这里有一点问题 因为构造器属性是不可枚举的,这里无法设置 name:"张三", sayName:function(){ alert(t…
技术在于交流.沟通,本文为博主原创文章转载请注明出处并保持作品的完整性. 向量容器vector是一个动态数组,内存连续,它是动态分配内存,且每次扩张的原来的二倍. 他的结构如下 一 定义 vector< 类型 > 标识符(最大容量,初始所有值) vector是一种类模板,那么他有很多行为与类相似 头文件 #include <vector> //a.定义 vector<typeName> v; vector<int> v; //b.拷贝构造 vector<…
序列性容器::(vector和list和deque)   erase迭代器不仅使所有指向被删元素的迭代器失效,而且使被   删元素之后的所有迭代器失效,所以不能使用erase(iter++)的方 式,但是erase的返回值为下一个有效的迭代器,所以     正确方法为::     for( iter = c.begin(); iter != c.end(); ) iter = c.erase(iter); 关联性容器::(map和set比较常用)    erase迭代器只是被删元素的迭代器失效,…
从0开始写STL-容器-vector vector又称为动态数组,那么动态体现在哪里?vector和一般的数组又有什么区别?vector中各个函数的实现原理是怎样的,我们怎样使用会更高效? 以上内容我们将通过写一个自己的vector来进行学习 typedef 简析 在容器类的最前面我们会看到许多的typedef ,常见的如下: public: typedef T value_type; typedef value_type* pointer; typedef value_type* iterat…