c++ 相关问题

C ++是一种通用编程语言。它最初被设计为C的扩展,并保持类似的语法,但现在是一种完全不同的语言。使用此标记来查询有关使用C ++编译器编译的代码的问题。对特定标准版本[C ++ 11],[C ++ 17]等相关问题使用版本特定标记。

向量没有输出到控制台

我的问题是,在用自然数替换向量中的几乎所有零之后,程序停止,而不会导致程序或任何输出代码崩溃。我的矢量没有显示在屏幕上...

回答 1 投票 0

在 C++ 程序中使用 C (<cstdio>) 风格代码有什么好的理由吗?

我见过一些程序,他们将 C 和 C++ 代码混合在一个 C++ 程序中(甚至在编码面试中)。 据我所知,所有类型的问题都可以单独使用 C++ 来解决和开发,所以我...

c++
回答 1 投票 0

如何通过引用将 C 风格数组传递给另一个函数

是的,我确实知道如何实际创建对 C 风格函数的引用。 但是当我尝试通过引用传递数组时,它给出了“无匹配函数”错误。 我首先接受arra...

回答 1 投票 0

纯虚函数C++中未定义的引用

我需要运行的 C++ 程序遇到一些困难。问题本身不是我的,我必须让它编译。该算法非常庞大,因此对于我当前的错误消息,我会

回答 3 投票 0

如何在CURLOPT_READFUNCTION函数中写入curl的ERRORBUFFER?

我在C++项目中使用curl将文件上传到服务。由于我们使用内部公司框架类来读取文件,因此我们为此定义了 READFUNCTION。内部函数可以抛出一个

回答 1 投票 0

C++:是否可以以纳秒精度获取实时(与当前 CPU 频率和负载无关)作为 unix 时间戳?

目前我使用当前 CPU 频率和 __rdtsc() 函数将其计算为 100 纳秒间隔(Windows FileTime): typedef std::chrono::time_point 目前我使用当前 CPU 频率和 __rdtsc() 函数将其计算为 100 纳秒间隔(Windows FileTime): typedef std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> TimePoint; void Services::GetRealTime(int64_t* RTime) // Time in 100-nanosecond intervals { *RTime = RealTime + (INT64)((__rdtsc() - rdtscPrevVal) * (1.0 / CPUFrequency)); } void Services::GetRealTime(TimePoint& timePoint) { int64_t realTime; GetRealTime(&realTime); timePoint = TimePoint(std::chrono::duration_cast<TimePoint::duration>(std::chrono::nanoseconds(realTime * 100))); } 但我确信 C++ 有更可靠、跨平台和精确的方法来做到这一点。我该怎么做? std::chrono::steady_clock::now() 能完成这项工作吗? 我需要精确测量事件时间(以纳秒为单位),与当前 CPU 负载和限制无关。 现在,这里有一些关于时钟和其他东西的想法。 首先,C++ 给你std::chrono::high_resolution_clock。但它并不为您提供有关实际分辨率的任何保证。如果您想要保证,您必须进入操作系统级别并仔细阅读他们有关实际分辨率与返回值的文档 - 仅仅因为某些内容返回“纳秒”并不意味着它正在测量纳秒。 现在,“unix 时间戳”实际上并不存在,所以我假设你正在谈论类似 time_t 的东西,除了放大到纳秒。从 C++ 的角度来看,这意味着将时间点转换为 std::chrono::system_clock ——不幸的是,这可能没有纳秒精度。另外,上次我尝试使用 std::chrono::clock_cast 时,我的编译器还没有。 假设您有一个可用的 std::chrono::clock_cast,您仍然可以尝试执行以下操作:从 high_resolution_clock 时间点削减纳秒,转换为 system_clock,获取 time_t,乘以 1000000000,然后添加纳秒。不过,这就是“如果”你有 clock_cast,以及“如果”你有纳秒开始...... 归根结底,如果我确实想要纳秒,我可能会坚持使用操作系统调用。只要我们没有将 std::chrono::nano_clock 定义为“系统可以召集的尽可能接近纳秒时钟”,可用的时钟就无法满足要求。 如果您没有 clock_cast,转换仍然是可能的,尽管有点黑客,并且它们可能会比 clock_cast 失去更多的准确性。那么,实际上,如果您想要“事件时间”,为什么它必须是“实时”呢?对于日志输出或类似的东西,准确性的损失不会是一个大问题,恕我直言。 但是,作为避免操作系统调用的简单解决方法,您可以键入定义您自己的“MyClock”,并检查您使用的系统实际提供的功能。例如,在 Windows 上,std::chrono::file_clock 可能与您当前使用的 100ns 分辨率时钟相同,只不过包装在 C++ 时钟中。不同平台上的人可能会将 MyClock 输入到不同的时钟,因此一些 #ifdef 可以提供合理的可移植性。 另外,虽然我自己没有检查过这个选项,但也许可以在编译时检查各种时钟类型的分辨率,并且基本上让编译器通过查看诸如 MyClock 之类的内容来为您计算出 high_resolution_clock和 file_clock 并选择最适合您的一个。 不过,这仍然会限制您使用 C++ 实现实际提供的时钟。操作系统可能有您可能喜欢的东西,但 C++ 实现可能不会包装那个...

回答 1 投票 0

ESP32 UART 中断每个字符

有没有办法在收到单个字符后立即在 ESP32 上生成 uart 中断? 我知道您可以在收到整个消息或按照规范时生成中断...

回答 2 投票 0

如何使用 MacOS Monterey 12.0.1 泄漏查找 Clion c++ 中内存泄漏的确切代码行?

我正在使用 Clion,我想找到一种方法来查找 Mac M1 上的内存泄漏。尚不支持 Valgrind。 让我们看一下这个存在内存泄漏的简单代码: // 存在内存泄漏的程序 #包括 我正在使用 Clion,我想找到一种方法来查找 Mac M1 上的内存泄漏。尚不支持 Valgrind。 让我们看一下这个存在内存泄漏的简单代码: // Program with memory leak #include <cstdlib> using namespace std; // function with memory leak void func_to_show_mem_leak() { int* ptr = new int(5); // body // return without deallocating ptr return; } // driver code int main() { // Call the function // to get the memory leak func_to_show_mem_leak(); system("leaks SimpleMemoryLeak"); return 0; } 我尝试过使用leaks: leaks *NameOfProccess* 我得到这个输出: Process 70526 is not debuggable. Due to security restrictions, leaks can only show or save contents of readonly memory of restricted processes. Process: SimpleMemoryLeak [70526] Path: /Users/USER/Documents/*/SimpleMemoryLeak Load Address: 0x100ec8000 Identifier: SimpleMemoryLeak Version: ??? Code Type: ARM64 Parent Process: clion [39550] Date/Time: 2021-12-05 23:32:52.942 +0100 Launch Time: 2021-12-05 23:32:52.307 +0100 OS Version: macOS 12.0.1 (21A559) Report Version: 7 Analysis Tool: /usr/bin/leaks Physical footprint: 945K Physical footprint (peak): 945K ---- leaks Report Version: 4.0 Process 70526: 208 nodes malloced for 12 KB Process 70526: 1 leak for 16 total leaked bytes. 1 (16 bytes) ROOT LEAK: 0x6000003ac030 [16] 有什么方法可以获取malloc所在的确切代码行吗?谢谢! 导出 MallocStackLogging=1 这将向您显示报告

回答 1 投票 0

是否可以从 C++ 创建 Qml 组件?

是否有某种方法可以从 C++ 创建/附加 QML 组件? 例如,如果我有这个 QML: 窗户 { id: 窗口 对象名称:“窗口名称” 标题:“窗口名称” 宽度:480 高度:8...

回答 2 投票 0

将头文件包含到实现文件中实际上有什么作用?

我正在阅读 Bjarne Stroustrups 使用 C++ 的原理和实践,并在第 8.3 章中遇到有关头文件的以下内容: 为了简化一致性检查,我们在源代码中 #include 标头...

回答 2 投票 0

使用 `std::apply` 迭代 `std::tuple`

我试图使用 std::apply 调用元组所有元素中的特定成员函数。当我使用 lambda 时这有效,但在定义自由函数时则无效。 以下模板元组 - 调用...

回答 1 投票 0

汇编代码,必须计算标量积

我是汇编程序新手。无法在以太网中找到解决方案,所以在这里询问。这段代码输出错误的数字,我不明白为什么。 #包括 长点积(短 int* vec1, s...

回答 1 投票 0

C++ GoogleTest INSTANTIATE_TEST_SUITE_P 生成测试用例的序列号

如何在 INSTANTIATE_TEST_SUITE_P ::testing::Values 中有效地使用 C++generate/generat_n/iota 来生成带有测试用例序列号的输入参数?

回答 1 投票 0

正确理解`CopyAssignable`

当我使用stl时,我发现不可分配的类型不允许作为容器的组件。 但是 CopyAssignable 概念确实很难掌握/理解,这需要深入研究

回答 1 投票 0

在 C++ 项目中使用 openmp 时没有观察到加速

我尝试将并行执行添加到我的 C++ 项目中。 因此,基于这个例子,我定义了我的 app.cpp 如下: #包括 #包括 #包括 int sum_s...

回答 1 投票 0

访问通过 new() 分配的内存时出现分段错误(核心转储)

当尝试检查已通过 new() 初始化的值时,我会出现分段错误错误。 int main() { const char* const *matrix = new(char*); std::cout << matrix[0][0]; //

c++
回答 1 投票 0

重新声明变量会导致计算错误

我正在寻找 VS Pro 2022 编译的旧 C++ Win32 程序中的计算错误。 发现该问题是由以下代码引起的,该代码始终产生零结果: 双

回答 1 投票 0

WSAGetLastError 返回 0

我正在使用winsock2的套接字创建一个项目 我使用系统调用连接到本地 IP 地址上的套接字,然后实现了一个用于错误处理目的的简单方法。 // 客户端 整数

回答 1 投票 0

调试模板实例化

使用 C++ 模板进行元编程时,是否可以使用一种类似于调试器的方法来逐步了解模板的实例化和编译方式?看来是对的...

回答 4 投票 0

使用 tgbot-cpp 的项目无法构建?

我在尝试使用 CMake 在 Windows 上构建 C++ 项目时遇到链接器错误。该项目使用 tgbot-cpp 库进行 Telegram 机器人开发。尽管尝试了各种解决方案,我...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.