网站报名系统怎么做wordpress 点击量
news/
2025/10/2 23:46:49/
文章来源:
网站报名系统怎么做,wordpress 点击量,网站推广服务具体内容包括哪些,碳晶板装修多少钱一平方一般是三种方法#xff1a;(1)用vector的vector#xff0c;(2)先分配一个指针 数组#xff0c;然后让里面每一个指针再指向一个数组#xff0c;这个做法的好处是访问数组元素时比较直观#xff0c;可以用a[x][y]这样的写法#xff0c;缺点是它相当于C#中的一个锯齿 数组(1)用vector的vector(2)先分配一个指针 数组然后让里面每一个指针再指向一个数组这个做法的好处是访问数组元素时比较直观可以用a[x][y]这样的写法缺点是它相当于C#中的一个锯齿 数组内存空间不连续。(3)直接分配一个x*y大小的一维数组这样保证空间是连续的但访问数组元素不直观。对于我这个“经典”回答我那时还一直是 挺得意的至少从蹭分的角度来看这样回答还是很有效的。 今天在ChinaUnix论坛闲逛时看到一个贴子再次证明了我在C方面才疏学浅。#include stdio.h#include stdlib.h#include string.hvoid **darray_new(int row, int col, int size){ void **arr; arr (void **) malloc(sizeof(void *) * row size * row * col); if (arr ! NULL) { void *head; head (void *) arr sizeof(void *) * row; memset(arr, 0, sizeof(void *) * row size * row * col); while (row--) arr[row] head size * row * col; } return arr;}void darray_free(void **arr){ if (arr ! NULL) free(arr);}嗯连续分配内存而且可以用a[x][y]的方式来访问可谓二维数组动态分配的绝妙方法这段程序是C的似乎要改成支持对象分配的C版也不是什么难事不过估计得用上placement new吧嗯需要再思考一下……。2007-06-13 12:38 补充:经过试验C版出炉了关键点还是在于placement new和显示的析构函数调用用于保证对象可以正常的构造和析构。这个实现也还是有不少缺点的比如数组的大小必须记住才能保证析构所有对象。不过这点可以通过改进分配方法算法把数组大小也用一点空间保存起来。另一个缺点是从语法上看很容易让人误把darray_new返回的指针以为是数据区的起始地址从而可能导致一些逻辑错误。#include iostream#include cstdlib#include newtemplate typename TT **darray_new(int row, int col){int size sizeof(T);void **arr (void **) malloc(sizeof(void *) * row size * row * col);if (arr ! NULL){unsigned char * head;head (unsigned char *) arr sizeof(void *) * row;for (int i 0; i row; i){arr[i] head size * i * col;for (int j 0; j col; j)new (head size * (i * col j)) T;}}return (T**) arr;}template typename Tvoid darray_free(T **arr, int row, int col){for (int i 0; i row; i)for (int j 0; j col; j)arr[i][j].~T();if (arr ! NULL)free((void **)arr);}2007-06-13 21:00补充本文仅为技术层面的讨论实践中考虑用boost::multi_array之类的现成的解决方案可能会更有效。 转载于:https://www.cnblogs.com/carekee/articles/1749558.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925419.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!