相关疑难解决方法(0)

c ++模板会使程序变慢吗?

我从许多人那里听说过使用模板会使代码变慢.这是真的吗?我正在建立一个图书馆.有些地方如果没有创建模板,就会导致代码管理问题.截至目前,我可以想到两个解决这个问题的方法:

  • 使用#defines

  • 使用模板并在头文件/库本身中定义所有可能的类型,但不允许最终用户创建模板实例.

例如typedef Graph<int> GraphI32;

无论如何,是否限制用户自己创建各种模板实例.

对上述查询的帮助将受到高度重视.

c++ performance templates

36
推荐指数
5
解决办法
2万
查看次数

C/C++中的快速反转平方

最近我正在分析一个程序,其中热点肯定是这个

double d = somevalue();
double d2=d*d;
double c = 1.0/d2   // HOT SPOT
Run Code Online (Sandbox Code Playgroud)

之后不使用值d2,因为我只需要值c.前段时间我已经读过关于快速平方根的Carmack方法,显然不是这种情况,但我想知道类似的算法是否可以帮助我计算1/x ^ 2.

我需要非常准确的精度,我已经检查过我的程序没有使用gcc -ffast-math选项给出正确的结果.(克++ - 4.5)

c algorithm performance square-root

9
推荐指数
2
解决办法
5017
查看次数

使用带有char指针的malloc时出现分段错误

我是C的新手并且学习结构.我正在尝试malloc使用大小为30的char指针,但它会产生分段错误(核心转储).我在互联网上搜索了它,但是我无法解决这个问题.任何帮助都感激不尽.
可能我char*错误地访问了struct 的成员?

typedef struct{
int x;
int y;
char *f;
char *l;
}str;

void create_mall();

void create_mall() //Malloc the struct
{
str *p;
p->f = (char*)malloc(sizeof(char)*30);  // segmentation fault here
p->l = (char*)malloc(sizeof(char)*30);
printf("Enter the user ID:");
scanf("%d",&p->x);
printf("\nEnter the phone number:");
scanf("%d",&p->y);
printf("\nEnter the First name:");
scanf("%29s",p->f);
printf("\nEnter the Last name:");
scanf("%29s",p->l);
printf("\nEntered values are: %d %d %s %s\n",p->x,p->y,p->f,p->l);
}

int main(void)
{
create_mall();
return 0;
}
Run Code Online (Sandbox Code Playgroud)

c malloc pointers char segmentation-fault

2
推荐指数
2
解决办法
9217
查看次数