当前位置: 首页 > news >正文

网站建设一般多少义乌哪里做网站好

网站建设一般多少,义乌哪里做网站好,免费网站建设论文,国有林场网站建设之前实现了java的动态数组#xff0c;试着写了个C版的#xff0c;同样对时间复杂度振荡进行了处理。纯手打#xff0c;代码如下 #xff1a; // // Created by PC-Saw on 2018/12/19. //#ifndef DATA_STRUCTURE_MYARRAY_H #define DATA_STRUCTURE_MYARRAY_H#include i…之前实现了java的动态数组试着写了个C版的同样对时间复杂度振荡进行了处理。纯手打代码如下 // // Created by PC-Saw on 2018/12/19. //#ifndef DATA_STRUCTURE_MYARRAY_H #define DATA_STRUCTURE_MYARRAY_H#include iostreamusing namespace std;template typename T class MyArray { private:int mSize;int mCapacity;T* data; public:MyArray(); // 无参构造函数explicit MyArray(int Capacity); // 构造函数传入容量CapacityMyArray(const MyArray arr); // 拷贝构造MyArray operator (MyArray arr); // 重载赋值操作符T operator[](int index); // 重载[]操作赋~MyArray(); // 析构函数//友元函数实现 重载输出 操作符friend ostream operator (ostream out, MyArrayT obj){out MyArray size obj.mSize , Capacity obj.mCapacity endl;out MyArray: [;for (int i 0; i obj.mSize; i){out obj.data[i];if (i ! obj.mSize - 1)out , ;}out ] ;return out;}//友元函数实现 输入 操作符friend istream operator (istream in, MyArrayT obj){for (int i 0; i obj.mSize; i) {in obj.data[i];}if (!in){obj new MyArray();}return in;}bool isEmpty(); // 判断数组是否为空bool isFull(); // 判断数组是否已满int find(T t); // 查找元素 t 的下标bool contain(T t); // 判断是否包含元素 tint getSize(); // 获取数组元素个数int getCapacity(); // 获取数组容量void pushFront(T t); // 头部添加元素void pushBack(T t); // 尾部添加元素void insert(int index, T t); // 在指定位置插入元素 tT remove(int index); // 删除指定位元素T removeFront(); // 删除第一个元素T removeBack(); // 删除最后一个元素void removeElement(T t); // 删除元素 tvoid set(int index, T t); // 将指定位置元素设为 tT get(int index); // 查看 index 位置的元素T getBack(); // 返回最后一个元素void resize(int newCapacity); // 重新分配空间 };// 构造函数 template typename T MyArrayT::MyArray(int Capacity) {cout 调用 MyArray(int) 构造 endl;if (Capacity 0)throw 传入容量有误;mSize 0;mCapacity Capacity;data new T[Capacity]; };// 无参构造函数 template typename T MyArrayT::MyArray() {cout 调用 MyArray() 构造 endl;mSize 0;mCapacity 10;data new T[10]; };// 拷贝构造 template typename T MyArrayT::MyArray(const MyArrayT arr) {cout 调用拷贝构造 endl;this-mSize arr.mSize;this-mCapacity arr.mCapacity;this-data new T[arr.mCapacity];// 拷贝数据for (int i 0; i arr.mSize; i) {this-data[i] arr.data[i];} }// 重载赋值操作符 template typename T MyArrayT MyArrayT::operator (const MyArrayT arr) {cout 调用 赋值操作 endl;if (this-data ! NULL){delete[] this-data;this-data NULL;}//分配内存this-mSize arr.mSize;this-mCapacity arr.mCapacity;this-data new T[arr.mCapacity];//拷贝数据for(int i 0; i this-mSize; i){//如果是自定义的复杂数据类型必须对 运算赋进行重载, operatorthis-data[i] arr.data[i];}return *this; }// 重载[]操作赋 template typename T T MyArrayT::operator[](int index) {if (index 0 || index this-mSize - 1)throw 索引非法;return this-data[index]; }// 析构函数 template typename T MyArrayT::~MyArray() {cout 调用析构函数 endl;if (this-data ! NULL){delete[] this-data;this-data NULL;}this-mSize 0;this-mCapacity 0; }// 判断数组是否为空 template typename T bool MyArrayT::isEmpty() {return mSize 0; };// 判断数组是否已满 template typename T bool MyArrayT::isFull() {return mSize mCapacity; };// 查找元素 t 的下标 template typename T int MyArrayT::find(T t) {for (int i 0; i mSize; i){if (data[i] t)return i;}return -1; }// 查找是否包含元素 t template typename T bool MyArrayT::contain(T t) {return (find(t) ! -1); }// 获取数组元素个数 template typename T int MyArrayT::getSize() {return mSize; }// 获取数组容量 template typename T int MyArrayT::getCapacity() {return mCapacity; }// 头部添加元素 template typename T void MyArrayT::pushFront(T t) {insert(0, t); }// 尾部添加元素 template typename T void MyArrayT::pushBack(T t) {insert(mSize, t); }// 在指定位置插入元素 t template typename T void MyArrayT::insert(int index, T t) {if (index 0 || index mSize) // 判断下标是否有误throw 0;if (isFull()) // 数组已满则重新分配空间resize(2 * mCapacity);for (int i mSize; i index ; --i){data[i] data[i - 1];}data[index] t;mSize; }// 删除指定位元素 template typename T T MyArrayT::remove(int index) {if (index 0 || index mSize) // 判断下标是否合法throw 0;// 删除 index 位置的元素并返回T ret data[index];for (int i index; i mSize - 1; i) {data[i] data[i 1];}mSize--;if (mSize mCapacity / 4 mCapacity / 2 ! 0) // 空闲空间太大重新分配空间resize(mCapacity / 2);return ret; }// 删除第一个元素 template typename T T MyArrayT::removeFront() {return remove(0); }// 删除最后一个元素 template typename T T MyArrayT::removeBack() {return remove(mSize - 1); }// 删除元素 e template typename T void MyArrayT::removeElement(T t) {int index find(t);index ! -1 remove(index); }// 将制定位置元素设为 t template typename T void MyArrayT::set(int index, T t) {if (index 0 || index mSize)throw 0;data[index] t; }// 返回 index 位置的元素 template typename T T MyArrayT::get(int index) {if (index 0 || index mSize)throw index is illegal!;return data[index]; }// 返回最后一个元素 template typename T T MyArrayT::getBack() {return get(mSize - 1); }// 重新分配空间 template typename T void MyArrayT::resize(int newCapacity) {if (newCapacity 0)throw 0;T* tmp new T[newCapacity];for (int i 0; i mSize; i){tmp[i] data[i];}delete[] data;data tmp;mCapacity newCapacity; }#endif //DATA_STRUCTURE_MYARRAY_H测试代码 #include iostream #include MyArray.husing namespace std;int main() {//cout boolalpha; // 将bool值正常显示MyArrayint arr; for(int i 0; i 10; i) arr.pushBack(i);cout arr endl;arr.pushFront(100);cout arr endl;arr.pushFront(-1);cout arr endl;arr.remove(2);cout arr endl;arr.removeElement(4);cout arr endl;arr.removeFront();cout arr endl;for(int i 0; i 5; i){arr.removeBack();cout arr endl;}return 0; } 之后还会有其他数据结构的 java 和 C 实现。
http://wiki.neutronadmin.com/news/165147/

相关文章:

  • 自己做网站步骤 域名ui设计就业前景
  • 网站建设调研问卷怎么做免费网站
  • 网页制作与设计实训目的怎么写面试问你如何快速优化网站
  • 做网站是干嘛直播系统平台搭建
  • 篮球运动装备网站模板网页app开发培训班
  • 花生壳域名做网站怎么在微信上做公众号
  • 打电话推销好还是做网站推广好东莞东城社保局电话
  • 罗湖商城网站建设哪家服务周到培训如何优化网站
  • 龙凤网站建设云聚达宣传片拍摄公司排名
  • 别样网站建设成为架构师有多难
  • 网站备案登陆用户名是什么小型网站建设公司价格
  • 东城企业网站开发网站主色调简介怎么说
  • 合肥建设局网站领导宜州市住房保障和城乡建设局网站
  • 如何在网站上做免费广告WordPress文章按钮
  • 规划设计网站推荐网站建设 的公司
  • 网站用户注册页面怎么做弹窗广告最多的网站
  • 秦皇岛住房建设网站企业微信app下载安装电脑版
  • 织梦模板大气网站建设类网站模板下载wordpress推广网站插件
  • 给自己公司做个网站成都seo优化
  • mvc5 网站开发之學 pdf行业网站建设分析
  • 棋牌网站制作价格简单asp网站源码
  • 用闲置的安卓手机做网站服务器如何做测评视频网站
  • 产品展示网站含后台网站模板下载兰州建设工程信息网站
  • 安阳网站建设开发建筑模拟2015
  • 网站建设项目设计报告m开头的网站建设公司
  • 如何加强门户网站建设电商网站首页模板
  • 安庆网站开发人员网站建设的基本步骤
  • 网络公司给别人做网站的cms是买的授权么口碑营销的重要性
  • 珠海专业的免费建站网站ftp用户名和密码
  • 简述网站开发的步骤工程公司排名