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

个人网站开发工具钓鱼网站如何做

个人网站开发工具,钓鱼网站如何做,宽屏网站模板html,上海注册公司核名网站文章目录 C 中的 vector 模拟实现1. vector 的基本概念2. vector 的基本操作3. vector 的模拟实现4.代码纯享5. 总结 C 中的 vector 模拟实现 在 C 中#xff0c;vector 是一个非常重要的容器#xff0c;它提供了动态数组的功能。在本篇博客中#xff0c;我们将尝试模拟实现… 文章目录 C 中的 vector 模拟实现1. vector 的基本概念2. vector 的基本操作3. vector 的模拟实现4.代码纯享5. 总结 C 中的 vector 模拟实现 在 C 中vector 是一个非常重要的容器它提供了动态数组的功能。在本篇博客中我们将尝试模拟实现一个简单的 vector 类以便更好地理解其内部工作机制。 1. vector 的基本概念 vector 是一个封装了动态大小数组的顺序容器。与普通数组不同vector 的大小可以根据需要动态地增加或减少而不需要程序员手动管理内存。 2. vector 的基本操作 构造函数创建一个空的 vector 或者根据给定的初始值创建一个 vector。赋值操作将一个 vector 的内容赋值给另一个 vector。访问元素通过索引访问 vector 中的元素。插入和删除元素在 vector 的任何位置插入或删除元素。大小操作获取 vector 的大小或检查它是否为空。迭代器操作提供迭代器以遍历 vector 中的元素。 3. vector 的模拟实现 首先我们需要定义vector的基本结构。由于vector可以存储不同类型的元素我们使用类模板来定义它 namespace my_vector {templateclass Tclass vector{public:// 定义迭代器类型typedef T* iterator;// 定义const迭代器类型typedef const T* const_iterator;// 其他成员变量和成员函数... };接下来我们实现vector的一些基本成员函数如默认构造函数析构函数拷贝构造函数 iterator begin(){return _start;}iterator end(){return _finish;}const_iterator begin() const{return _start;}const_iterator end() const{return _finish;}vector(){}//拷贝构造v2(v1)vector(const vectorT v){reserve(v.capacity());for (auto e : v){push_back(e);}}//vectorint v1 { 1, 2, 3, 4, 5, 6, 7, 8 };//构造拷贝构造 - 优化 直接构造vector(initializer_listT il){reserve(il.size());for (auto e : il){push_back(e);}}vector(size_t n, const T val T()){reserve(n);for (size_t i 0; i n; i){push_back(val);}}vector(int n, const T val T()){reserve(n);for (int i 0; i n; i){push_back(val);}}//深拷贝 v1v3vectorT operator(vectorT v){swap(v);return *this;}~vector(){delete[] _start;_start _finish _endofstorage nullptr;} private:iterator _start nullptr;iterator _finish nullptr;iterator _endofstorage nullptr;然后我们实现vector的迭代器。迭代器是一种行为类似于指针的对象它能够遍历容器中的元素 bool empty(){return _start _finish;}void insert(iterator pos, const T val){assert(pos _start);assert(pos _finish);if (_finish _endofstorage){size_t len pos - _start;reserve(capacity() 0 ? 4 : capacity() * 2);//如果扩容了要更新pospos _start len;}iterator it _finish - 1;while (it pos){*(it 1) *it;it--;}*pos val;_finish;}iterator erase(iterator pos){assert(pos _start);assert(pos _finish);iterator it pos 1;while (it _finish){*(it - 1) *it;it;}--_finish;return pos;}最后我们实现vector的一些基本操作如push_back、pop_back、begin、end等 size_t size() const{return _finish - _start;}T operator[](size_t pos){assert(pos size());return _start[pos];}const T operator[](size_t pos) const{assert(pos size());return _start[pos];}size_t capacity() const {return _endofstorage - _start;}void reserve(size_t n){if (n capacity()){T* tmp new T[n];size_t old_size size();//memcpy(tmp, _start, size()*sizeof(T));for (size_t i 0; i old_size; i){tmp[i] _start[i];}delete[] _start;_start tmp;_finish tmp old_size;_endofstorage tmp n;}}void resize(size_t n,const T valT()){if (n size()){reserve(n);//插入while (_finish_start n){*_finish val;_finish;}}else{//删除_finish _start n;}}void push_back(const T val){/*if (_finish _endofstorage){reserve(capacity() 0 ? 4 : capacity() * 2);}*_finsh val;_finsh;*/insert(end(), val);}void pop_back(){/*assert(empty());_finsh--;*/erase(--end());}4.代码纯享 #pragma once #include assert.hnamespace my_vector {templateclass Tclass vector{public:// 定义迭代器类型typedef T* iterator;// 定义const迭代器类型typedef const T* const_iterator;// 其他成员变量和成员函数...iterator begin(){return _start;}iterator end(){return _finish;}const_iterator begin() const{return _start;}const_iterator end() const{return _finish;}vector(){}//拷贝构造v2(v1)vector(const vectorT v){reserve(v.capacity());for (auto e : v){push_back(e);}}//vectorint v1 { 1, 2, 3, 4, 5, 6, 7, 8 };//构造拷贝构造 - 优化 直接构造vector(initializer_listT il){reserve(il.size());for (auto e : il){push_back(e);}}//类模板的成员函数可以是函数模板template class InputIeratorvector(InputIerator first, InputIerator last){while (first ! last){push_back(*first);first;}}vector(size_t n, const T val T()){reserve(n);for (size_t i 0; i n; i){push_back(val);}}vector(int n, const T val T()){reserve(n);for (int i 0; i n; i){push_back(val);}}void swap(vectorT v){std::swap(_start, v._start);std::swap(_finsh, v._finsh);std::swap(_endofstorage, v._endofstorage);}//深拷贝 v1v3vectorT operator(vectorT v){swap(v);return *this;}~vector(){delete[] _start;_start _finish _endofstorage nullptr;}size_t size() const{return _finish - _start;}T operator[](size_t pos){assert(pos size());return _start[pos];}const T operator[](size_t pos) const{assert(pos size());return _start[pos];}size_t capacity() const {return _endofstorage - _start;}void reserve(size_t n){if (n capacity()){T* tmp new T[n];size_t old_size size();//memcpy(tmp, _start, size()*sizeof(T));for (size_t i 0; i old_size; i){tmp[i] _start[i];}delete[] _start;_start tmp;_finish tmp old_size;_endofstorage tmp n;}}void resize(size_t n,const T valT()){if (n size()){reserve(n);//插入while (_finish_start n){*_finish val;_finish;}}else{//删除_finish _start n;}}void push_back(const T val){/*if (_finish _endofstorage){reserve(capacity() 0 ? 4 : capacity() * 2);}*_finsh val;_finsh;*/insert(end(), val);}void pop_back(){/*assert(empty());_finsh--;*/erase(--end());}bool empty(){return _start _finish;}void insert(iterator pos, const T val){assert(pos _start);assert(pos _finish);if (_finish _endofstorage){size_t len pos - _start;reserve(capacity() 0 ? 4 : capacity() * 2);//如果扩容了要更新pospos _start len;}iterator it _finish - 1;while (it pos){*(it 1) *it;it--;}*pos val;_finish;}iterator erase(iterator pos){assert(pos _start);assert(pos _finish);iterator it pos 1;while (it _finish){*(it - 1) *it;it;}--_finish;return pos;}private:iterator _start nullptr;iterator _finish nullptr;iterator _endofstorage nullptr;};//函数模板//template typename Ttemplate class Tvoid print_vector(const vectorT v){for (size_t i 0; i v.size(); i){cout v[i] ;}cout endl;//typename vectorint::const_iterator it v.begin();// auto it v.begin();// while (it ! v.end())// {// cout *it ;// it;// }// cout endl;// for (auto e : v)// {// cout e ;// }// cout endl;}void test_vector1(){vectorint v1;v1.push_back(1);v1.push_back(2);v1.push_back(3);v1.push_back(4);v1.push_back(5);v1.push_back(6);print_vector(v1);v1.insert(v1.begin(),3);v1.insert(v1.begin() 2, 3);v1.insert(v1.begin() 4, 3);v1.insert(v1.begin() 6, 3);print_vector(v1);v1.erase(v1.begin()4);print_vector(v1);vectordouble v2;v2.push_back(0.1);v2.push_back(0.2);v2.push_back(0.3);v2.push_back(0.4);v2.push_back(0.5);v2.push_back(0.6);print_vector(v2);}void test_vector2(){vectorint v1;v1.push_back(1);v1.push_back(2);v1.push_back(3);v1.push_back(4);v1.push_back(5);v1.push_back(6);print_vector(v1);v1.resize(10);print_vector(v1);v1.resize(3);print_vector(v1);}void test_vector3(){vectorint v3(10,1);print_vector(v3);}void test_vector4(){auto x { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };cout typeid(x).name() endl;cout sizeof(x) endl;initializer_listint y { 1, 2, 3, 4, 5, 6, 7 };//单参数的构造函数隐式类型转换string str 111111;//构造拷贝构造-优化 直接构造const string str1 111111;//构造拷贝构造-优化 直接构造vectorstring v;v.push_back(str);v.push_back(string(22222));v.push_back(33333);int i 1;//不推荐 --- C11int j { 1 };int k{ 1 };//跟上面类似//隐式转化优化vectorint v1 { 1, 2, 3, 4, 5, 6, 7, 8 };for (auto e : v1){cout e ;}cout endl;//直接构造vectorint v2({ 1, 2, 3, 10, 20, 30 });for (auto e : v2){cout e ;}cout endl;}void test_vector5(){vectorstring v;v.push_back(11111);v.push_back(11111);v.push_back(11111);v.push_back(11111);v.push_back(11111);v.push_back(11111);for (auto e : v){cout e ;}cout endl;}void test_vector6(){vectorint v1;v1.push_back(1);v1.push_back(1);v1.push_back(1);v1.push_back(1);v1.push_back(1);v1.push_back(1);print_vector(v1);vectorint::iterator it v1.begin() 3;v1.insert(it, 40);print_vector(v1);} }5. 总结 通过这个简单的 vector 模拟实现我们不仅加深了对 vector 容器的理解还学习了如何在 C 中实现一个动态数组。当然实际的 vector 类还包含更多的功能和优化我这个只是进行了简单的实现
http://www.pierceye.com/news/814284/

相关文章:

  • 能够沟通业务的网站wordpress 主题 恢复
  • 动态域名做网站在线查询企业
  • 绍兴企业网站推广建设通是什么网站
  • 网站设计制作太原抖音seo怎么做的
  • 北京网站代理备案上海跨境电商网站开发公司排名
  • 您的网站未备案 或者原备案号被取消开发一个微信小程序多少钱
  • 如何用记事本做网站南宁做网站哪家好
  • 优秀网站首页百度账号怎么改名字
  • 杭州做网站排名软件碧桂园房地产最新消息
  • 上传网站空间天津专门做网站的公司
  • 无锡企业做网站大庆油田内网主页网址
  • 网站开发合同 下载山西正规网站建设报价公司
  • seo好的外贸网站怎么用wordpress建立本地网站
  • 网站备案号查询有名vi设计公司
  • 呼市做网站建设的公司哪家好易班班级网站建设展示PPT
  • 网站制作精品案例欣赏中国建设局网站首页
  • 几分钟做网站网站网格布局
  • 为企业做网站策划案网站建设 爱诚科技公司
  • 怎么把网站放到阿里云做网站外链需要多少钱
  • 南宁市网站建设公司给人做网站网站
  • 怎么查网站的备案号网站页面设计需求
  • 手机网站怎么做的好网页设计参考书籍
  • 网站建设和网络推广方案网站建设技术可行性分析
  • 免费建站网站自助建站的网站建站淘宝网站开始怎么做的
  • 旅游电网站建设目标公司注册成本
  • 建设婚恋网站基本功能有哪些毕业设计网页
  • 广州贸易网站杭州关键词推广优化方案
  • 怎么注册自己的网站wordpress静态设置
  • 网站收录有什么好处仿糗事百科wordpress
  • 面试网站建设工程师鞍山市城市建设管理局网站