小编Jam*_*lis的帖子

非常差的boost :: lexical_cast性能

Windows XP SP3.Core 2 Duo 2.0 GHz.我发现boost :: lexical_cast性能非常慢.想找出加速代码的方法.在visual c ++ 2008上使用/ O2优化并与java 1.6和python 2.6.2进行比较我看到以下结果.

整数铸造:

c++: 
std::string s ;
for(int i = 0; i < 10000000; ++i)
{
    s = boost::lexical_cast<string>(i);
}

java:
String s = new String();
for(int i = 0; i < 10000000; ++i)
{
    s = new Integer(i).toString();
}

python:
for i in xrange(1,10000000):
    s = str(i)
Run Code Online (Sandbox Code Playgroud)

我看到的时间是

c ++:6700毫秒

java:1178毫秒

python:6702毫秒

c ++和python一样慢,比java快6倍.

双铸:

c++:
std::string s ;
for(int i = 0; i < 10000000; …
Run Code Online (Sandbox Code Playgroud)

c++ boost lexical-cast

45
推荐指数
6
解决办法
3万
查看次数

ANSI C和K&R C之间的主要区别是什么?

关于ANSI C维基百科文章说:

ANSI C标准化过程的目标之一是生成K&R C(第一个发布的标准)的超集,其中包含随后引入的许多非官方特征.但是,标准委员会还包括一些新功能,例如函数原型(借用C++编程语言)和更强大的预处理器.参数声明的语法也已更改,以反映C++样式.

这让我觉得有差异.但是,我没有看到K&R C和ANSI C之间的比较.是否有这样的文件?如果没有,主要区别是什么?

编辑:我相信K&R书的封面上写着"ANSI C".至少我相信我在家里的版本确实如此.那么也许没有什么区别了?

c kr-c c89

43
推荐指数
4
解决办法
4万
查看次数

警告:格式不是字符串文字,也不是格式参数

我想删除我在这行代码上发出的​​警告,

FILE *fil;
char *imp;
(...)
fprintf(fil,imp);
Run Code Online (Sandbox Code Playgroud)

事情就是当我这样做它在文件上写下我想要的,但如果我应用格式%s它不会,像这样

fprintf(fil, "%s", imp);
Run Code Online (Sandbox Code Playgroud)

c c++ format printf warnings

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

文件如何进入MSVC++ 2010中的外部依赖项?

我想知道为什么我的一个项目的VDSERR.h列在"外部依赖项"下,另一个项目没有,并且给出了一个关于在那里定义的符号的"未定义符号"编译器错误.如何将此文件也包含在其他项目中?(可能是通过拖放,但我想知道这里的确切设置.)

c++ external-dependencies visual-studio visual-c++

42
推荐指数
2
解决办法
8万
查看次数

为什么C在C99之前没有布尔数据类型?

我意识到你可以只是#define一些整数,但为什么C在C99之前没有专用的布尔数据类型?

它在编程和逻辑中是如此常见,我不理解显式类型和符号的缺失.

c language-design c99 c89

40
推荐指数
8
解决办法
6055
查看次数

C++删除语法

我偶然发现了这种"删除"的不寻常用法.只是想知道以下行是删除指针还是仅删除第一行?

delete ptr1, ptr2
Run Code Online (Sandbox Code Playgroud)

c++

40
推荐指数
5
解决办法
4856
查看次数

输出参数并通过引用传递

我加入了一个新的小组,其编码指南(对我而言)似乎过时了.

但只是在没有有效备份的情况下反对机器不会让我无处可去.
所以我转向SO,看看我们是否能够理性的理由支持/反对(嘿,我的选择可能是错的,所以我们会赞赏论证的双方).

争论的准则是:

提示:对返回参数使用指针而不是引用.

void Func1( CFoo &Return );  // bad  
void Func2( CFoo *pReturn ); // good  
Run Code Online (Sandbox Code Playgroud)

理由:
使用引用时,它看起来与值相同.调用该函数后,调用者可能会惊讶于他的值已被更改.被调用者可能会无意中修改该值而不会影响调用者的值.通过使用指针,调用者和被调用者都清楚可以更改该值.在代码审查中使用引用可能特别容易引起误解.

c++ pointers coding-style reference

39
推荐指数
6
解决办法
5万
查看次数

如何在Verilog中声明和使用1D和2D字节数组?

如何在Verilog中声明和使用1D和2D字节数组?

例如.怎么做像

byte a_2D[3][3];
byte a_1D[3];

// using 1D
for (int i=0; i< 3; i++)
{
    a_1D[i] = (byte)i;
}

// using 2D
for (int i=0; i< 3; i++)
{
    for (int j=0; j< 3; j++)
    {
        a_2D[i][j] = (byte)i*j;
    }
}
Run Code Online (Sandbox Code Playgroud)

arrays byte verilog

35
推荐指数
3
解决办法
18万
查看次数

取消引用结构指针内的指针

我有一个结构:

struct mystruct
{
    int* pointer;
};

structure mystruct* struct_inst;
Run Code Online (Sandbox Code Playgroud)

现在我想改变指向的值struct_inst->pointer.我怎样才能做到这一点?

编辑

我没有写它,但pointer已经指向分配的内存区域malloc.

c struct pointers

34
推荐指数
1
解决办法
5万
查看次数

用于表示ANSI(C89/90)C中的字节的类型?

是否有标准投诉方法来表示ANSI(C89/90)C中的字节?我知道,大多数情况下,一个字符恰好是一个字节,但我的理解是,这不能保证是这种情况.另外,在C99标准中有stdint.h,但在C99之前使用了什么?

我特别想知道8位和"字节"(sizeof(x)== 1).

c types c89

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