C++计时
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <chrono>
long fibonacci(unsigned n)
{
if (n < 2) return n;
return fibonacci(n-1) + fibonacci(n-2);
}
int main()
{
auto start = std::chrono::steady_clock::now();
std::cout << "f(42) = " << fibonacci(42) << '\n';
auto end = std::chrono::steady_clock::now();
std::chrono::duration<double> elapsed_seconds = end-start;
std::cout << "elapsed time: " << elapsed_seconds.count() << "s\n";
}
// output
// f(42) = 267914296
// elapsed time: 1.88232s
C++计时也可使用clock_t
,但是当使用多核多线程时可能会计时有较大偏差。
这里有一篇看起来比较好的C++日期和时间总结。
C/C++多文件共享全局变量时,使用extern的规范
extern
的使用规范,内容如下:
1、在定义文件中定义全局变量, 比如A.cpp
中定义全局变量 int a
;
2、在对应的头文件A.h
中声明外部变量extern int a
;
3、在引用a
变量的文件中# include "A.h"
;
lambda表达式
C++类型转换:
string -> char
1
2
std::string str("abc");
fprintf(f, "%s\n", str.c_str());