相关疑难解决方法(0)

为什么emplace_back比push_back更快?

emplace_back做以下事情时,我认为这将是胜利者:

v.push_back(myClass(arg1, arg2));
Run Code Online (Sandbox Code Playgroud)

因为emplace_back会在向量中立即构造对象,而push_back首先会构造一个匿名对象,然后将其复制到向量中.有关更多信息,请参阅

谷歌也提出了这个这个问题.

我决定将它们与一个由整数填充的向量进行比较.

这是实验代码:

#include <iostream>
#include <vector>
#include <ctime>
#include <ratio>
#include <chrono>

using namespace std;
using namespace std::chrono;

int main() {

  vector<int> v1;

  const size_t N = 100000000;

  high_resolution_clock::time_point t1 = high_resolution_clock::now();
  for(size_t i = 0; i < N; ++i)
    v1.push_back(i);
  high_resolution_clock::time_point t2 = high_resolution_clock::now();

  duration<double> time_span = duration_cast<duration<double>>(t2 - t1);

  std::cout << "push_back took me " << time_span.count() << " seconds.";
  std::cout << …
Run Code Online (Sandbox Code Playgroud)

c++ performance stl push-back emplace

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

如何使用C++/C++ 11打印当前时间(以毫秒为单位)

目前我使用此代码

string now() {
    time_t t = time(0);
    char buffer[9] = {0};

    strftime(buffer, 9, "%H:%M:%S", localtime(&t));
    return string(buffer);
}
Run Code Online (Sandbox Code Playgroud)

格式化时间.我需要添加毫秒,因此输出的格式为:16:56:12.321

c++ linux windows time c++11

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

如何以秒为单位获取系统的当前日期时间

如何在C++中以秒为单位获取系统的当前日期时间?

我试过这个:

struct tm mytm = { 0 };
time_t result;

result = mktime(&mytm);

printf("%lld\n", (long long) result); 
Run Code Online (Sandbox Code Playgroud)

但我得到了:-1?

c++

9
推荐指数
3
解决办法
5万
查看次数

如何像java一样在c ++中获得毫秒的时间

在Java中,您可以这样做:

long now = (new Date()).getTime();
Run Code Online (Sandbox Code Playgroud)

我怎么能用c ++做同样的事情?

c++ time

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

花费时间以毫秒为单位

我在unistd.h中找到了usleep函数,我认为在每个动作之前等待一段时间是有用的.但是我发现线程只是在它没有接收到任何信号时才会睡觉.例如,如果我按下一个按钮(我正在使用OpenGL,但问题是更具体的关于time.h和unistd.h),线程被唤醒,我没有得到我想要的.在time.h中,有一个sleep函数接受一个整数,但是一个整数太多了(我想等0.3秒),所以我使用了usleep.我问是否有一个函数需要花费时间(以毫秒为单位)(来自任何GNU或任何库).它应该像time()一样工作,但是返回毫秒而不是秒.这可能吗?

c++

4
推荐指数
1
解决办法
6762
查看次数

标签 统计

c++ ×5

time ×2

c++11 ×1

emplace ×1

linux ×1

performance ×1

push-back ×1

stl ×1

windows ×1