std相关内容

emplace_back() 未按预期运行

我编写了一个简单的程序来尝试在标准库容器中就地创建对象.这是我写的: #include #include AB类{上市:显式 AB(int n);AB(const AB& other) = 删除;AB(AB&&其他);AB&运算符=(常量 AB& 其他)= 删除;AB&运算符=(AB&&其他)=默认;私人的:诠释我;};AB::AB(int n): i(n){ ..
发布时间:2022-01-23 20:53:37 C/C++开发

c++17 `filesystem` 不是命名空间名称

我想知道为什么在下面的代码中,没有找到命名空间filesystem: g++ -std=c++17 main.cpp -lstdc++ //#include 命名空间 fs = std::filesystem;主函数(){返回0;} 错误: main.cpp:3:21: error: ‘filesystem’ is not ..
发布时间:2022-01-23 20:43:33 C/C++开发

g++ 是否满足 std::string C++11 要求

考虑以下示例: int main(){字符串 x = "你好";//这里调用了复制构造函数.字符串 y(x);//c_str return const char*,但这种用法很流行.char* temp = (char*)y.c_str();温度 [0] = 'p';cout 意思是 COW 是不允许的(至少在我的理解中). 怎么可能? g++ 是否满足 std::string C++11 要 ..
发布时间:2022-01-23 20:32:43 C/C++开发

使用哪个 std::sync::atomic::Ordering?

std::sync::atomic::AtomicBool 的所有方法 采用我以前没有使用过的内存排序(Relaxed、Release、Acquire、AcqRel 和 SeqCst).在什么情况下应该使用这些值?该文档使用了我不太了解的令人困惑的“加载"和“存储"术语.例如: 生产者线程改变由 Mutex 持有的一些状态a>,然后调用 AtomicBool::compare_and_swa ..
发布时间:2022-01-22 20:20:11 其他开发

试图访问 std::stack 的索引

void PDA::parse(vector words){for(int i=0; i 我收到这些错误 PDA.cpp:25: error: no match for â((PDA*)this)->PDA::stack[j]â 中的“operator[]âPDA.cpp:26: error: no match for 'operator[]' in â((PDA*)this)->PDA:: ..
发布时间:2022-01-22 12:18:46 C/C++开发

编译错误:void 值没有被忽略,因为它应该在 std::queue::pop()

编写一个函数,将二叉树中同一级别的所有相邻节点连接起来.给定二叉树节点的结构如下. 结构节点{整数数据;左节点*;节点* 对;节点* nextRight;} 最初,所有 nextRight 指针都指向垃圾值.您的函数应将这些指针设置为指向每个节点的右下角. 我的代码是 #include/*请注意,这是功能问题,即您只需要以 Function(s) 的形式编写解决方案.调用/调用您的函数 ..
发布时间:2022-01-21 12:10:18 C/C++开发

C++ std::queue::pop() 调用析构函数.指针类型呢?

我有一个 std::queue,它被包装为一个模板类以创建一个线程安全的队列.我有这个类的两个版本:一个存储值类型,一个存储指针类型. 对于指针类型,我无法在销毁时删除队列中的元素.原因是我不知道如何安全地从队列中移除项目. 这个 参考状态(空洞,所以我猜它实际上不是状态它)从队列中删除元素的唯一方法是调用 pop().该参考资料还说 pop() 调用该项目的析构函数. 嗯,这会 ..
发布时间:2022-01-21 11:51:34 C/C++开发

标准向量 C++——深拷贝或浅拷贝

我想知道是否复制向量我正在复制向量及其值(而这不适用于数组,并且深度复制需要循环或 memcpy). 你能提示解释吗? 问候 解决方案 每次复制向量时,您都在进行深层复制.但是,如果您的向量是指针向量,则您将获得指针的副本,而不是指向的值 例如: std::vectorF;std::vectorcp = f;//深拷贝.所有 Foo 已复制std::vecto ..
发布时间:2022-01-20 18:11:34 C/C++开发

C++ const std::map 引用无法编译

将 std::map 的引用作为 const 传递是否会导致 [] 运算符中断?使用 const 时出现此编译器错误(gcc 4.2): 错误:没有匹配到‘operator[]’‘地图[名称]’ 这是函数原型: void func(const char ch, std::string &str, const std::map 而且,我要提一下,当我去掉 std::map 前面的 c ..
发布时间:2022-01-20 16:50:17 C/C++开发

使自定义类型“可绑定"(与 std::tie 兼容)

假设我有一个自定义类型(我可以扩展): struct Foo {诠释一个;字符串 b;}; 如何使该对象的实例可分配给 std::tie,即 std::tuple 引用? Foo foo = ...;诠释一个;字符串 b;std::tie(a, b) = foo; 尝试失败: 重载 tuple 是不可能的,因为赋值运算符是二进制运算符之一,它必须是左侧对象的成员. 所以我尝试通 ..
发布时间:2022-01-19 23:55:34 C/C++开发

std::vector<unsigned int> 的初始化带有连续无符号整数的列表

我想使用一种特殊的方法来初始化一个 std::vector 在我用作参考的 C++ 书籍中描述(德国书籍 'Der C++ Programmer'Ulrich Breymann,以防万一).在那本书中有一节介绍了 STL 的序列类型,特别提到了 list、vector 和 deque.在本节中,他写道,这种序列类型有两个特殊的构造函数,即,如果 X 引用了这种类型, ..
发布时间:2022-01-18 23:57:59 C/C++开发

多图与带集合的地图

我想知道哪个更有效. std::map 或 std::multimap 编辑:我不打算用这些地图做任何不寻常的事情.标准的插入、删除、修改、搜索.每个 set 或 multi keyed String 的大小不应超过 100. 解决方案 我相信这取决于实现,但一个(未经)教育的猜测: 实际上,这取决于您将在 multimap 或 std::set 中保留的整数数量.multi ..
发布时间:2022-01-17 18:44:51 C/C++开发

std::set 迭代器自动 const

可能重复: C++ STL 集更新很繁琐: 我不能原地改变元素 为了简单起见,我已经提取了问题并更改了名称. 基本上我实例化一个类并将其存储在 std::set 中,稍后我想引用该类,以便我可以检查它的值并修改它们... 简化代码: MyClass tmpClass;std::set设置我的类;setMyClass.insert(tmpClass);std::set::it ..
发布时间:2022-01-17 18:11:59 C/C++开发

std::set 中索引处的元素?

我偶然发现了这个问题:我似乎无法在普通 std::set 中选择索引位置处的项目.这是 STD 中的错误吗? 下面是一个简单的例子: #include #include 主函数(){std::set我的集;my_set.insert(0x4A);my_set.insert(0x4F);my_set.insert(0x4B);my_set.insert(0x45 ..
发布时间:2022-01-17 18:06:18 C/C++开发

c++空std::vector开始不等于结束

您好,我在 Windows 10 上遇到了一种情况,它声明了空的类成员变量向量,但是这个向量的 begin()(first iterator) 和 end()(last iterator) 不同,正如我在空向量中所知道的那样,这两个应该是相同的.有任何想法吗?:))) 结构 B{标准::字符串一个;标准::字符串 b;};A级{一个();标准::向量vec_;};A::A(){} 在构造 ..
发布时间:2022-01-15 15:32:55 C/C++开发

为什么有经验的编码人员使用 std:: 而不是使用命名空间 std;?

可能重复: 为什么'使用命名空间std;'在 C++ 中被认为是一种不好的做法? 前几天我问了一个问题,有人回答说如果有人问问题,请向他们展示正确的方法,而不是 using namespace std; 我认为这有点奇怪,因为using namespace std; 更容易方式,但我想我现在失败了,因为我是一个“初学者"编码器,你们知道得更好. 所以我想我的问题是:为什么使用 std ..
发布时间:2022-01-14 23:42:25 C/C++开发

Rust “使用"与 C++“使用命名空间"相比

在 Rust 中声明多个“使用"语句是否被认为是不好的风格?我是一名最近开始尝试 Rust 的 C++ 程序员.我在查看 Rust 代码时注意到的一件事是,在许多 Rust 程序中,程序顶部会有一堆 use 语句.来自 C++,不鼓励使用 using namespace std 尤其是在制作头文件时,但在我见过的大多数 Rust 程序中似乎并非如此.那么以下哪些琐碎的例子被认为是更好的 Rust ..
发布时间:2022-01-14 23:39:01 其他开发

究竟什么是命名空间以及为什么它是必要的

我现在正在学习 C++,在每个项目开始时,我的导师都会写一句话: 使用命名空间标准; 我了解它使您不必调用包含头文件名称(如 iostream::stdout)的头文件中的函数,而只需调用标准输出. 但是这行代码到底告诉 C++ 做什么.什么是命名空间,什么是 std? 除了 python 之外,我也是编程新手,所以切换到新的范例对我来说非常困惑. 解决方案 来自 cppr ..
发布时间:2022-01-14 23:24:07 C/C++开发