cost 65 ms
如何避免在 std::unordered_map 上进行双重搜索并在实现缓存时避免在不需要时调用工厂函数

我一直在实现基于 std::unordered_map 的缓存。 如果值已经存储,我想避免调用生成值的工厂函数,但我也想避免在地图上运行两次搜索。 我有两个简化的插入实现,演示如何构建缓存。 insert_a首先使用 find 来检测项目是否存在,并且仅在它不调用工厂来获取值的情况下。 对容 ...

2022-01-24 12:13:26 1 38
从类构造函数推导出类模板参数

我想让编译器从构造函数中推断出部分类模板参数。 动机是编写一个协议库,其中某些数据的存在性(此处为位长度)取决于最后一个变量的值,因此必须使用条件类对此进行建模。 我想实现的 c++ 代码应该像这样工作,但我想以一种更具表现力和简化的方式来实现它,而不必在模板中设置所有参数,而是让编译器推断它们 ...

2022-01-24 11:45:41 1 60
"std::unique_ptr、pimpl 和对象生存期"

以下示例使用 Linux (GNU STL) 上的 gcc 11 和 FreeBSD (Clang STL) 上的 clang 12 进行编译。 在 Linux 上,它运行并打印值 1 和 2。在 FreeBSD 上,它打印值 1,然后因 SEGV 而崩溃。 我不太了解对象的生命周期——所以整个事情 ...

2022-01-24 10:23:06 1 27
依赖范围内的 C++ 可变参数模板语法

我对现实世界的代码有疑问,并使用以下示例代码复制了该问题。 编译错误: 如果我从有问题的语句中删除 <T...> ,即return F::Apply(t...); ,并让编译器推断类型,它可以工作。 但是,在我的真实世界代码中,我需要指定类型。 特定类型并满足编译器的正确语法糖 ...

2022-01-23 11:10:11 1 33
预编译 bits/stdc++.h 失败

我正在使用mingw-w64编译bits/stdc++.h 头文件 我得到了一个以结尾的错误列表 C:/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/fs_path.h:167:5:注意:来自'std::basi ...

2022-01-23 08:26:47 0 43
"如何将整数转换为向量,然后在 C++ 中将该向量转换为字符串"

我想取一个整数并将其转换为数组,然后将其存储为 C++ 中的字符串。 但我不知道如何将整数转换为数组,然后将其存储为字符串。 我还在学习 C++,请帮助我。 这就是我希望它完成的方式: 请帮助我并显示代码以及解释 编辑:我有一些数据可以处理每个数字的整数值,我可以自己解决,但为此,我需要首先将整 ...

2022-01-23 07:22:22 5 59
分段错误二叉搜索树

我知道几乎没有类似标题的问题,但是我检查了它们,但仍然无法解决我的错误。 这是 BST 实现: 这是我的主要内容: 如果我尝试插入 10000 个元素,那么它可以正常工作。 但是,当我尝试插入 100000 个元素时,我会进入调试器: 当循环中的 I 值达到 32469 时会发生这种情 ...

2022-01-23 02:48:58 2 25
我们如何处理用户定义文字输入中的错误?

假设我想定义一个整数百分比,如下所示: 我正在考虑投掷,但我记得constexpr和throw不匹配(或者仅在 C++14 和更早版本中?)。 这种情况下的约定是什么? 在用户定义的文字运算符中报告错误的正确方法是什么? 注意:我目前使用 C++17,但计划很快切换到 C++20。 ...

2022-01-22 18:12:06 1 32
在成员函数中调用析构函数

例如,如果我们正在实现智能指针,并且我们想做a = std::move(b) --- 我们需要删除a指向的内存,但是我们可以在移动赋值运算符中调用析构函数吗?复制粘贴析构函数的函数体? 是否定义了在移动赋值中调用析构函数的行为? 如果不是,有没有更好的方法来处理它而不是复制粘贴析构函数的主体? ...

2022-01-22 16:57:26 2 63
该解决方案在第 7 行执行时出现错误“超出范围”

尽管示例输入和输出匹配,但我收到了这个绑定错误。 我尝试了几种方法来解决这个错误,但我做不到。 请帮助我克服这个问题。 还请解释为什么这个错误的主要原因是什么。 我的代码: 样本输入: 输出: ...

2022-01-22 07:17:12 3 32
compile_commads 中的 C++ 标准冲突

我正在开发一些使用 C++17 标准和 clangd-13.0 的项目。 在我决定在其 CMakeLists 文件中添加使用 C99 标准的库之后的某个时间,现在即使在 cpp 文件中,clangd 也总是基于 C99 标准进行分析。 我的 CMakeLists 文件如下所示: 我可以以某种方 ...

2022-01-21 13:28:35 0 49
在标头中声明的变量模板是否违反 ODR?

当头文件包含如下模板变量时会发生什么: 这个变量使用安全吗? 对此进行了一些研究,我发现: 模板是隐式外部的,但这确实会导致 ODR 违规 没有任何 static 或 inilne 或 constexpr 装饰,我最终会得到多个定义 C++17 的关键字inline更改了规则,但 C ...

2022-01-21 13:22:58 2 73
"带参数初始化的单例"

我想知道在使用getInstance()调用返回有效对象之前,制作需要使用带参数的initialise()调用的安全单例的最佳方法是什么。 例如 这有什么危险/不是线程安全的吗? 有没有更清洁/更好的方法来解决这个问题? ...

2022-01-21 08:21:03 2 102

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM