首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个程序优化相关的有关问题

2012-05-04 
一个程序优化相关的问题我有一个类,结构如下class A{string a1string a2string a3string a4}现在我要

一个程序优化相关的问题
我有一个类,结构如下
class A
{
string a1;
string a2;
string a3;
string a4;
};
现在我要把a1,a2,a3,a4输出到一个string里。但是要求是只有当a1,a2,a3,a4有值的时候,才输出,不然不输出。我目前的做法如下,但是问题是这里每次都会对4个成员(实际成员变量不止4个,会很多)做判断,数据量相当大的话很耗cpu而且没有必要,有什么办法能再for外面就决定了里面怎么拼字符串?

C/C++ code
A a;string b;//此处有一个格式定义a有哪些成员变量会有值while(1){//do something,对a赋值,a的值是从数据库取出来的,此时已经知道成员变量是否会有值了。   if (!a.a1.empty())       b=b+a.a1;   if (!a.a2.empty())       b=b+a.a2;   if (!a.a1.empty())       b=b+a.a3;   if (!a.a1.empty())       b=b+a.a4;}


[解决办法]
enum string_type
{
name = 0,
id,
sex,
race,
...
..
.
string_type_size
};
可以增加字段,不过要在string_type_size之前。
b.reserve(size)//自己估量下大概多少。
for(int i = 0 ; i < (int)string_type_size ; ++ i)
if(!str[i].empty()) b += str[i];

热点排行