读书人

用什么代替vector最好

发布时间: 2012-03-22 17:43:57 作者: rapoo

求助:用什么代替vector最好?
我需要存储一些数据,数据总量会随着计算变大,且要进行搜索、删除等操作。之前我用的vector,我觉得写代码的时候蛮方便,但是用vector不好的一点就是经常出错,越界呀等等的。而且我是vector潜逃vector,似乎效率也不高。想将部分换成数组存储数据,但又遇到数组大小要变动的问题。

小女子新手,不知道描述清楚了没有?

请求达人指点。

[解决办法]
1、把所有的下标操作改成vector::at(),就会知道啥时候越界了。
2、不要vector套vector。
3、数据量大,且搜索删除频繁的情况下,用数据库。
[解决办法]

探讨

因为后面要对vector的成员进行搜索、删除等操作,不知道咋的就越界了。因为不熟啊。

很感谢。size 需要变化的 ,先定义一个vector 它的元素 是自己定义的结构体,这结构体中有一个成员是vector。这样子不知道效率低不低


引用:
vector也会越界?...
size需要变化的,就用vector
size不需要变化的,就用数组
具体问……

[解决办法]
仅供参考
C/C++ code
//使用动态分配#include <stdio.h>#include <stdlib.h>#include <malloc.h>int i,L;char *p;void main() {    for (i=0;i<20000;i++) {        L=rand();        p=malloc(L);        if (NULL==p) {            printf("malloc error!\n");            continue;        }        memset(p,0,L);        free(p);    }}//不使用动态分配#include <stdio.h>#include <stdlib.h>#include <memory.h>#define MAXLEN 30000int i,L;char buf[MAXLEN];char *p;void main() {    p=&buf[0];    for (i=0;i<20000;i++) {        L=rand();        if (L>MAXLEN) {            printf("L>MAXLEN==%d, ignore spilth.\n",MAXLEN);            L=MAXLEN;        }        memset(p,0,L);    }}
[解决办法]
干脆用“数据库+SQL”不行吗?

读书人网 >C++

热点推荐