求一简单高效的算法

weixing979 2006-05-16 09:44:09
有一数组,长度是不固定的,数组内是自定义的结构体.现在需要根据结构体某些字段进行区分
struct mys
{
BYTE a;
BYTE b;
BYTE c;
//mys的其他数据
};
现在是想把结构体中的 a b c完全相同的放在另一个结构体中
struct all
{
BYTE num; //标识个数
BYTE a;
BYTE b;
BYTE c;
//包含mys其他数据的结构体数组
};
直到把所有的数据都分出来.因为所有的数据都要判断一次,如果有a b c 相同的就往已有的all变量里加,如果没有则重新生成一个all的变量 .有没有什么高效和方法,而且在all的变量里面还有数组也是长度不确定的
...全文
147 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixing979 2006-05-16
  • 打赏
  • 举报
回复
如果用 a b c 关键字排序后应该能很方便的做出来了
铖邑 2006-05-16
  • 打赏
  • 举报
回复
用类实现比较好
定义一个基类CBase,包含公共的数据,一定要有虚拟析构函数
然后用vector<CBase *>
Maconel 2006-05-16
  • 打赏
  • 举报
回复
结构体的长度应该是固定的,所以结构体内应该是固定长度的数组。
如果想要变成的数组,就要使用指针,或者vector之类。不过在复制结构体时,需要自己写代码来深复制。另外如果要把结构体通过网络发送出去,或者发送给其他进程等等,都需要做类似深复制的处理。
weixing979 2006-05-16
  • 打赏
  • 举报
回复
to xpdavis(咕嘟) ,实际中 那个all 要比mys 的数据多一些的,并不只是多一个num.
假如一组数据中
a = 1 b = 1 c = 1 的有5个,那么就要生成一个all 的变量all1 ,
all1.num = 5;
all1.a = 1;
all1.b = 1;
all1.c = 1;
all1.其他数据这里又是一个数组,包括mys.aaa mys.bbb 的结构体变量的一个数组

如果 又有a =1 b=1 c=2 的数据,那么还要生成all 的变量all2(名字不限),以此类推

铖邑 2006-05-16
  • 打赏
  • 举报
回复
为啥不统一用all呢?就是不一样的,就让num等于1不就行了?没必要搞得这么复杂吧,就为了省一个整数的空间???统一以后用vector可以,不统一的话,只能用指针了
zyyoung 2006-05-16
  • 打赏
  • 举报
回复
友情up
weixing979 2006-05-16
  • 打赏
  • 举报
回复
用vector是否可行呢

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧