C++ - 精确时间的向量
C++ - Vector of precise time
我一直在寻找一个精度很高的C++时钟,我找到了这个答案,谁使用标准的时间库。然后,我尝试将所有持续时间放在一个向量中。我有一些问题。下面是一个简单的测试代码:
#include <iostream>
#include <vector>
#include <chrono>
#include <stdlib.h>
int main() {
int i, j;
std::chrono::high_resolution_clock::time_point begin;
std::chrono::high_resolution_clock::time_point end;
// std::chrono::duration<long int, std::micro> duration;
std::vector<std::chrono::duration<long int, std::micro> > times;
for (i=0 ; i<10 ; ++i) {
begin=std::chrono::high_resolution_clock::now();
for (j=0 ; j<1000000 ; ++j) {
// Do things
}
end=std::chrono::high_resolution_clock::now();
auto duration=std::chrono::duration_cast<std::chrono::microseconds>(end-begin).count();
times.push_back(duration);
}
return EXIT_SUCCESS;
}
当我编译时,我收到此错误。GCC 将向量视为long int
向量,我不明白为什么。
test.cpp:28:29: erreur: no matching function for call to ‘std::vector<std::chrono::duration<long int, std::ratio<1l, 1000000l> > >::push_back(long int&)’
times.push_back(duration);
我还尝试在第一个循环之前声明变量duration
,例如 cpp 引用示例(并且没有 auto(。但是,当我尝试为其分配一个值时,出现此错误:
test.cpp:26:13: erreur: no match for ‘operator=’ (operand types are ‘std::chrono::duration<long int, std::ratio<1l, 1000000l> >’ and ‘std::chrono::duration<long int, std::ratio<1l, 1000000l> >::rep {aka long int}’)
duration=std::chrono::duration_cast<std::chrono::microseconds>(end-begin).count();
我的问题:
- 我必须如何声明变量
duration
(不带auto
(? - 我如何声明
times
向量?
你快到了,只需删除你初始化duration
行末尾的.count()
。
- 如何声明可变持续时间(没有自动(?
- 我必须如何声明时间向量?
最易读的形式是类型别名,例如
using Duration = std::chrono::microseconds;
std::vector<Duration> times;
const Duration d = std::chrono::duration_cast<Duration>(end - begin);
times.push_back(d);
请注意,我已经删除了显式表示模板参数long int
。<chrono>
提供的默认帮助程序类型(此处为 std::chrono::microseconds
(很好。
相关文章:
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- 如何检查两个 std::向量在小于 O(n) 的时间复杂度内是否相等
- 将树节点添加到向量向量中的 n 元树遍历的平均和最坏情况时间复杂度是多少?
- 比较向量中的元素时所花费的时间呈指数级增长
- 您可以在一段时间内迭代向量
- C++ - 精确时间的向量
- 映射向量的时间复杂性是多少
- 在 O(N) 时间内使用布尔谓词函数对向量进行排序
- 难以找到向量的最小时间值
- vector::size() 如何在常量时间内返回向量的大小
- 使用多个线程的并行向量乘法比顺序乘法需要更长的时间
- C++对向量进行时间复杂度排序
- 比较向量元件的运行时间复杂性的提高
- 在无序映射<字符串上使用 find(),向量<string>>与 C++ 中的有序映射花费相同的时间
- 向量与Deque插入时间
- 按时间对向量进行排序
- 将带有时间戳的向量整数连接为C++中的字符串
- 时间和空间复杂性在二叉树的每个级别创建元素向量(NON-BST)
- 我有两个点和一个时间,我如何找出向量
- 初始化结构向量需要大量的编译时间