我已经看到了一些关于iostreamvs 之间差异的信息iostream.h.根据我从中收集的内容,它们之间的区别在于,没有.h扩展名的版本将不会填充命名空间,而具有扩展名的版本将填充.
对于cmathvs,这是一样的math.h吗?为什么cmath(以及许多其他类似的文件)以a c为前缀而不仅仅是math?他们之间有更多的差异吗?
感谢您的时间!
我已经看到了几个浮动数组长度的宏:
从这个问题:
#define length(array) (sizeof(array)/sizeof(*(array)))#define ARRAY_LENGTH(array) (sizeof((array))/sizeof((array)[0]))#define SIZE(array, type) (sizeof(array) / (sizeof(type))和Visual Studio的_countof:
#define _countof(_Array) (sizeof(_Array) / sizeof(_Array[0]))
我想知道的是:
array[0]和有*array什么区别?我正在尝试以正确的(或至少是最好的)方式开始使用命名空间.
我试图做的第一件事是避免放在using namespace xxx;我的文件的开头.相反,我希望using xxx::yyy尽可能在本地.
这是一个小程序,说明了这一点:
#include <iostream>
#include <cstdlib>
#include <ctime>
int main() {
   using std::cout;
   using std::endl;
   srand(time(0));
   for(int i=0; i<10;++i)
      cout << rand() % 100 << endl;
   return 0;
}
如果我省略了行,using std::cout;或者using std::endl编译器会在我尝试使用cout或时抱怨endl.
但为什么不需要这个srand,rand而且time?我很确定他们在std,因为如果我试着专门倒std::在他们面前,我的代码工作正常.