Questions tagged «c++»

C ++是一种通用编程语言。它最初被设计为C的扩展,并且具有类似的语法,但是现在它是一种完全不同的语言。使用此标记可解决有关将要使用C ++编译器编译的代码的问题。对于与特定标准修订版[C ++ 11],[C ++ 14],[C ++ 17]或[C ++ 20]等相关的问题,请使用特定于版本的标记。


6
如何获取自1970年以来的当前时间戳(以毫秒为单位),就像Java一样
在Java中,System.currentTimeMillis()自历元时间起,我们可以使用来获取当前时间戳(以毫秒为单位)- 当前时间与UTC 1970年1月1日午夜之间的差(以毫秒为单位)。 在C ++中如何获得相同的东西? 目前,我正在使用它来获取当前时间戳- struct timeval tp; gettimeofday(&tp, NULL); long int ms = tp.tv_sec * 1000 + tp.tv_usec / 1000; //get current timestamp in milliseconds cout << ms << endl; 这看起来正确与否?
134 c++  timestamp 

18
谁会何时使用工会?是仅C语言时代的残余吗?
我学到了,但并没有真正得到工会。我遍历的每一个C或C ++文本都对它们进行了介绍(有时会进行介绍),但是它们却很少给出为什么或在何处使用它们的实际示例。工会在现代(甚至是传统)案例中什么时候有用?我仅有的两个猜测是,当您的工作空间非常有限时,或者当您开发API(或类似的东西)时,您想强迫最终用户在多个对象/类型中只有一个实例时,对微处理器进行编程一度。这两个猜测是否接近正确?
133 c++  c  unions 

3
如果在从头到尾迭代时在map元素上调用Erase()会发生什么?
在下面的代码中,我遍历了一个映射并测试是否需要删除一个元素。擦除元素并保持迭代是安全的吗,还是我需要将密钥收集到另一个容器中并进行第二次循环来调用delete()? map<string, SerialdMsg::SerialFunction_t>::iterator pm_it; for (pm_it = port_map.begin(); pm_it != port_map.end(); pm_it++) { if (pm_it->second == delete_this_id) { port_map.erase(pm_it->first); } } 更新:当然,我然后阅读了我认为不相关的问题,但回答了我的问题。
133 c++  stl  iterator 

3
如何打印uint64_t?失败:“格式中的虚假结尾'%'”
我写了一个非常简单的printf uint64_t测试代码: #include <inttypes.h> #include <stdio.h> int main() { uint64_t ui64 = 90; printf("test uint64_t : %" PRIu64 "\n", ui64); return 0; } 我使用ubuntu 11.10(64位)和gcc版本4.6.1对其进行编译,但失败了: main.cpp: In function ‘int main()’: main.cpp:9:30: error: expected ‘)’ before ‘PRIu64’ main.cpp:9:47: warning: spurious trailing ‘%’ in format [-Wformat]
133 c++  c 


13
当95%的情况下的值为0或1时,是否可以对很大的数组进行随机访问优化?
是否有可能对非常大的数组进行随机访问进行任何优化(我目前正在使用uint8_t,而我询问的是哪种更好) uint8_t MyArray[10000000]; 当数组中任意位置的值是 95%的情况下为0或1, 在4%的情况下, 占2 % 在其他1%的情况下介于3到255之间? 那么,有什么比uint8_t数组更好的东西了吗?应该尽可能快地以随机顺序遍历整个阵列,这在RAM带宽上非常繁重,因此当有多个线程同时对不同的阵列执行此操作时,当前整个RAM带宽很快就饱和了。 我问,因为实际上知道几乎所有值(除了5%之外)几乎都是0或1时,拥有如此大的数组(10 MB)感觉非常低效,所以当数组中所有值的95%实际上只需要1位而不是8位,这将使内存使用量减少近一个数量级。感觉必须要有一种内存效率更高的解决方案,该解决方案将大大减少为此所需的RAM带宽,因此也大大加快了随机访问的速度。

16
Windows线程:_beginthread与_beginthreadex与CreateThread C ++
什么是更好的方式来启动一个线程,_beginthread,_beginthreadx或CreateThread? 我试图确定什么是优势/劣势_beginthread,_beginthreadex和CreateThread。所有这些函数都将线程句柄返回到新创建的线程,我已经知道,当发生错误时(可以通过调用来检查GetLastError),CreateThread提供了一些额外的信息。米使用这些功能? 我正在使用Windows应用程序,因此跨平台兼容性已经成为不可能。 我已经阅读了msdn文档,例如,我什至不明白为什么有人会决定使用_beginthread而不是CreateThread,反之亦然。 干杯! 更新:OK,所有的信息,谢谢,我也看到了在几个地方,我不能打电话WaitForSingleObject(),如果我使用的_beginthread(),但如果我呼吁_endthread()在线程不应该工作?那有什么事
133 c++  c  multithreading  winapi 

8
D与C ++相比有多快?
我喜欢D的某些功能,但是否会对运行时带来惩罚? 相比之下,我实现了一个简单的程序,该程序可以同时在C ++和D中计算许多短向量的标量积。结果令人惊讶: D:18.9 s [请参见下文了解最终运行时间] C ++:3.8 s C ++的速度真的快五倍吗,或者我在D程序中犯了一个错误? 我在最近的中等Linux桌面上使用g ++ -O3(gcc-snapshot 2011-02-19)和dmd -O(dmd 2.052)编译了C ++。在多次运行中结果可重现,标准偏差可忽略不计。 这是C ++程序: #include <iostream> #include <random> #include <chrono> #include <string> #include <vector> #include <array> typedef std::chrono::duration<long, std::ratio<1, 1000>> millisecs; template <typename _T> long time_since(std::chrono::time_point<_T>& time) { long tm = std::chrono::duration_cast<millisecs>( std::chrono::system_clock::now() - …
133 c++  performance  runtime  d 

16
以const正确性卖给我
那么,为什么总是建议尽可能多地使用const呢?在我看来,在C ++中使用const可能比提供帮助更痛苦。但是再说一次,我是从python角度出发的:如果您不希望更改某些内容,请不要更改它。如此说来,这里有几个问题: 好像每次将某物标记为const时,我都会遇到错误,并且还必须在某个地方更改其他一些函数才能成为const。然后这导致我不得不在其他地方更改另一个功能。有了经验,这会变得更容易吗? 使用const的好处真的足以弥补麻烦吗?如果您不打算更改对象,为什么不不编写不更改对象的代码呢? 我应该注意,在这个时候,我最专注于将const用于正确性和可维护性的好处,尽管对性能的影响也很了解。


3
LLVM与OS X上的clang
我对OS X上的llvm,clang和gcc有疑问。 llvm-gcc 4.2,llvm 2.0和clang有什么区别?我知道它们都基于llvm构建,但是它们有何不同? 除了更快的编译速度之外,llvm与gcc相比还有什么优势?
133 c++  c  gcc  llvm  clang 


4
在Qt 5中连接过载信号和插槽
我难以掌握Qt 5中的新信号/插槽语法(使用指向成员函数的指针),如“ 新信号插槽语法”中所述。我尝试更改此: QObject::connect(spinBox, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)); 对此: QObject::connect(spinBox, &QSpinBox::valueChanged, slider, &QSlider::setValue); 但是尝试编译时出现错误: 错误:没有匹配的调用函数 QObject::connect(QSpinBox*&, <unresolved overloaded function type>, QSlider*&, void (QAbstractSlider::*)(int)) 我已经尝试在Linux上使用clang和gcc,两者都使用-std=c++11。 我在做什么错,该如何解决?
133 c++  qt  qt5 

6
如何将自定义删除器与std :: unique_ptr成员一起使用?
我有一个具有unique_ptr成员的课程。 class Foo { private: std::unique_ptr<Bar> bar; ... }; Bar是具有create()函数和destroy()函数的第三方类。 如果我想std::unique_ptr在独立功能中使用它,我可以这样做: void foo() { std::unique_ptr<Bar, void(*)(Bar*)> bar(create(), [](Bar* b){ destroy(b); }); ... } 有什么办法可以std::unique_ptr作为班级成员吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.