我正在建立一个翻译,因为这次我的目标是原始速度,所以在这个(原始)情况下,每个时钟周期对我都很重要.
您是否有任何经验或信息两者更快:Vector或Array?重要的是我可以访问元素的速度(操作码接收),我不关心插入,分配,排序等.
我现在要把自己从窗户里拉出来说:
这对我来说似乎很合乎逻辑.使用向量,您可以获得阵列不存在的所有安全性和控制开销.
(为什么)我错了?
不,我不能忽视性能差异 - 即使它是如此之小 - 我已经优化并最小化执行操作码的VM的每个其他部分:)
众所周知,有些库使用的流如iostream和fstream.
我的问题是:
print,fgets等等(例如)?它们需要自己的操作符<<,>>但它们所做的一切都可以用上面的简单函数实现,也可以用函数实现
printf("Hello World!");
Run Code Online (Sandbox Code Playgroud)
对我来说比我更具可读性和逻辑性
cout << "Hello World";
Run Code Online (Sandbox Code Playgroud)
我还认为C++中的所有字符串抽象都编译为二进制的(效率较低的)标准函数调用.
假设我有一个班级:
class a
{
public:
void load_data( );
private:
void check_data( );
void work_data( );
void analyze_data( );
}
Run Code Online (Sandbox Code Playgroud)
这些函数都对类或其中一个成员做了一些事情.
但是这个功能:
bool validate_something( myType myData )
{
if ( myData.blah > 0 && myData.blah < 100 )
{
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
与类相关并且只会被它调用,因此在其他任何地方都不需要它
对类或其成员不做任何事情 - 只是一个小的"实用程序"功能
在哪里放validate_something?课堂内外?
int* test( )
{
int a = 5;
int* b = &a;
return b;
}
Run Code Online (Sandbox Code Playgroud)
结果会test是一个bad pointer?据我所知,应该删除,然后b会成为乱搞指针,对吧?
如何更复杂的东西,不是一个int指针,但与20个成员左右的类相同?
例:
switch( x )
{
case y:
if ( true )
{
break;
}
cout << "Oops";
break;
}
Run Code Online (Sandbox Code Playgroud)
如果switch语句选择y,将Oops写入标准输出?- break在switch语句中是一个动态关键字,如continue,可以在条件下调用,还是像关闭括号一样静态}?