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

巫山网站建设免费做图网站有哪些

巫山网站建设,免费做图网站有哪些,开源官网,手机网站方案1 vector简介 顺序存储, 初始化过程会分配一定量空间, 在尾部插入会很快, 但是在中间插入元素, 会把之后所有元素向后平移, 所以较慢(中间删除元素同理). 如果元素个数超过当前限制, 会重新分配更大空间, 再把原容器中所有元素都拷贝到新的容器中. 优点: 支持随机访问(用下标…1 vector简介 顺序存储, 初始化过程会分配一定量空间, 在尾部插入会很快, 但是在中间插入元素, 会把之后所有元素向后平移, 所以较慢(中间删除元素同理). 如果元素个数超过当前限制, 会重新分配更大空间, 再把原容器中所有元素都拷贝到新的容器中. 优点: 支持随机访问(用下标访问), 性能较好缺点: 除了操作尾部元素, 增删中间元素性能较差 2 vector接口 push_back() 尾插数据pop_back() 尾删数据front() 第一个元素back() 最后一个元素 构造: void vector_constructor_test() {int array[] {0,1,2,3,4,5,6,7,8,9};vectorint testVec TestUtils::getInstance()-getVectorByArr(PARAM_ARRAY(array));TestUtils::getInstance()-showVector(testVec);vectorint testVec1(testVec.begin(), testVec.end()); // copy [testVec.begin(), testVec.end())TestUtils::getInstance()-showVector(testVec1);vectorint testVec2(array[0], array[8]); // copy array[0, 8)TestUtils::getInstance()-showVector(testVec2);vectorint testVec3(10, 100);TestUtils::getInstance()-showVector(testVec3); // testVec3 have 10 elements, every element is 100vectorint testVec4;testVec4.assign(testVec.begin(), testVec.end()); // copy testVec[begin(), end())TestUtils::getInstance()-showVector(testVec4); } 结果: 2.1 vector容量和大小 void vector_size_capacity_test() {int array[] {0,1,2,3,4,5,6,7,8,9};vectorint testVec TestUtils::getInstance()-getVectorByArr(PARAM_ARRAY(array));cout testVec.size(): testVec.size() endl;cout testVec.capacity(): testVec.capacity() endl;testVec.resize(15); // if resize number vec.size(), willTestUtils::getInstance()-showVector(testVec); // fill with 0cout testVec.size(): testVec.size() endl;cout testVec.capacity(): testVec.capacity() endl;testVec.resize(5);TestUtils::getInstance()-showVector(testVec);cout testVec.size(): testVec.size() endl;cout testVec.capacity(): testVec.capacity() endl;testVec.resize(15, 8);TestUtils::getInstance()-showVector(testVec);cout testVec.size(): testVec.size() endl;cout testVec.capacity(): testVec.capacity() endl; } 结果为: 2.2 增删 void vector_add_delete_test() {int array[] {0,1,2,3,4,5,6,7,8,9};vectorint testVec TestUtils::getInstance()-getVectorByArr(PARAM_ARRAY(array));testVec.push_back(10); // add to backTestUtils::getInstance()-showVector(testVec);testVec.pop_back(); // delete backTestUtils::getInstance()-showVector(testVec);testVec.insert(testVec.begin(), 10); // insert to headTestUtils::getInstance()-showVector(testVec);testVec.insert(testVec.begin(), 2, 100); // insert two 100 to headTestUtils::getInstance()-showVector(testVec);testVec.erase(testVec.begin()); // delete headTestUtils::getInstance()-showVector(testVec);testVec.erase(testVec.begin(), testVec.begin() 2);// delete head to head 2(not include head 2)TestUtils::getInstance()-showVector(testVec);cout testVec.front(): testVec.front() endl;cout testVec.back(): testVec.back() endl; } 结果: 2.2 互换 void vector_swap_test() {int array1[] {0,1,2,3,4,5,6,7,8,9};vectorint testVec1 TestUtils::getInstance()-getVectorByArr(PARAM_ARRAY(array1));int array2[] {10,11,12,13,14,15,16,17,18,19};vectorint testVec2 TestUtils::getInstance()-getVectorByArr(PARAM_ARRAY(array2));TestUtils::getInstance()-showVector(testVec1);TestUtils::getInstance()-showVector(testVec2);testVec1.swap(testVec2);TestUtils::getInstance()-showVector(testVec1);TestUtils::getInstance()-showVector(testVec2); } 运行结果为: 用途如以下测试代码: void vector_swap_test1() {vectorint testVec;for (int i 0; i 100000; i ) {testVec.push_back(i);}cout testVec.size(): testVec.size() endl;cout testVec.capacity(): testVec.capacity() endl;testVec.resize(10);cout testVec.size(): testVec.size() endl;cout testVec.capacity(): testVec.capacity() endl; } 结果是: 所以可以用swap收缩: void vector_swap_test1() {vectorint testVec;for (int i 0; i 100000; i ) {testVec.push_back(i);}cout testVec.size(): testVec.size() endl;cout testVec.capacity(): testVec.capacity() endl;testVec.resize(10);cout testVec.size(): testVec.size() endl;cout testVec.capacity(): testVec.capacity() endl;vectorint(testVec).swap(testVec);cout testVec.size(): testVec.size() endl;cout testVec.capacity(): testVec.capacity() endl; } 结果是: 原因是vectorint(testVec).swap(testVec);调用时, 相当于用testVec创建了一个匿名对象vectorint (testVec), 这个匿名对象的size和capacity都是10, 元素就是testVec的十个元素, 然后这个匿名对象和testVec作了交换之后, 匿名对象变成了十万个元素, 而testVec变成了size和capacity都是10, 匿名对象在行结束后立刻销毁, 所以原来哪个100000个元素的匿名对象就销毁了, 这样就达到了缩容的目的. 2.3 预留空间 reserve. 调用reserve可以减少重新分配空间的时间, 但是和resize不同的是, 元素不会被初始化为0. 比如有如下函数, 我们可以验证vector在加入了100000个元素之后一共重新分配了多少次内存.有两种方法: 看序列首元素地址改变了多少次看vector的size和capacity相等了多少次 void vector_allocate_test1(){vectorint testVec;int *p NULL;int number1 0;int number2 0;for (int i 0; i 100000; i ) {if (testVec.size() testVec.capacity())number1 ;testVec.push_back(i);if (p ! testVec[0]) {p testVec[0];number2 ;}}cout number1 number1 endl;cout number2 number2 endl; } 结果是: 发现重新分配了18次.我们可以用以下代码来测试一下性能: void vector_allocate_test2(){double startTime TestUtils::getInstance()-getNowMillisecond();vectorint testVec1;for (int i 0; i 100000; i ) {testVec1.push_back(i);}double endTime TestUtils::getInstance()-getNowMillisecond();cout use endTime - startTime ms endl;startTime TestUtils::getInstance()-getNowMillisecond();vectorint testVec2;testVec2.reserve(100000);for (int i 0; i 100000; i ) {testVec2.push_back(i);}endTime TestUtils::getInstance()-getNowMillisecond();cout use endTime - startTime ms after reserve endl; } 结果为: 3 迭代器 假如有如下一个vector: #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))vectorint intVec; int array[] {0, 1, 2, 3, 4, 5}; for (int i 0; i ARRAY_SIZE(array); i ) {inVec.push_back(arr[i]); } 那么如下迭代器: vectorint::iterator beginIter intVec.begin(); //beginIter指向vector首元素vectorint::iterator endIter intVec.end(); //endIter指向vector最后元素的下一个位置
http://www.yutouwan.com/news/466967/

相关文章:

  • 广州手机网站开发学校网站规划方案
  • 网站如何注销黄骅贴吧最新消息金鼎18号
  • 学校网站怎么做前端开发培训机构知乎
  • html5做个网站多少钱那些做黑网站的都是团体还是个人
  • 网站制作公司推荐电影网站建设哪家便宜
  • 网站建设客户调查需求表长沙手机网站建设哪些
  • 广州智能模板建站找工作 招聘附近8小时双休
  • 常德网站建设求职简历网站开发最新流程
  • 山西响应式网站制作深圳网站设计 深圳信科
  • 怎么查找一个网站开发时间广西网站建设seo优化
  • 建设厅企业锁在哪个网站登录化妆品电子商务网站建设规划书
  • 长沙建立网站老客户网站建设
  • 英文注册查询网站做网站算经商吗
  • 有哪些做婚礼平面设计的网站下载百度免费
  • 网站升级及政务新媒体建设方案WordPress清除文章缓存
  • 万网网站建设方案书 备案凡科登录电脑版
  • 一个网站专门做摩托车成都住建局官网查询电话
  • 阿里巴巴 网站 建设中国建设机械教育协会网站
  • 营销型企业网站建设步骤专业制作户口本
  • 集团公司网站建设策划网站建设的技巧
  • 做模型的网站做公司自主网站
  • 建筑工程网上报建网站一家三口的室内设计方案
  • 网站制作苏州企业魔贝课凡seo课程好吗
  • 成都 网站推广怎么知道一个网站是谁做的
  • 江门网站优化经验手机应用软件开发培训班
  • 网站怎么做彩页石家庄做网站时光
  • 律师网站建设 优帮云网络推广服务如何退费
  • 建设网站的市场环境湛江企业网站建设公司
  • 郑州网站开发手机app快速开发工具
  • 网站主办者有效证件电子件游戏开发工程师需要学什么