stl相关内容

C ++ STL堆栈弹出操作给出分段错误

我从 this link 在 C++ 中实现了一个编程问题,但我得到了一个我的代码在 pop() 操作中出现分段错误.我对 C++ 还很陌生,自己似乎找不到错误. #include#include使用命名空间标准;无效 printNge(int *arr);int main() {int arr[] = {1,4,2,6,3,8,7,2,6};printNge(arr);返回0;}无效 prin ..
发布时间:2022-01-12 16:22:18 C/C++开发

保存结构指针的 STL 列表

我有一个名为 vertex 的结构,并创建了一些指向它们的指针.我想要做的是将这些指针添加到列表中.我下面的代码在尝试将指针插入列表时会产生分段错误.有人可以解释发生了什么吗? #include #include #define NUM_VERTICES 8使用命名空间标准;枚举{白色,灰色,黑色};结构顶点{诠释颜色;整数距离;字符父;};主函数(){//创建顶点顶 ..
发布时间:2022-01-12 16:20:55 C/C++开发

指向向量元素的指针崩溃

向量五;v.push_back(1);int * p = &v[0];for (int i = 2; i 我知道向量重新分配了一块新的内存来增加容量,但是 p 只是一个指向某个内存地址的指针,而 p 本身并没有改变.即使在向量重新分配之后, p 指向的内存也在同一进程的地址空间中.为什么会崩溃? 解决方案 如果您将代码更改为以下内容: #include #incl ..
发布时间:2022-01-12 16:04:03 服务器开发

我可以重载CArchive吗<<运算符与 std::string 一起使用?

我在我的 MFC 应用程序中使用 std::string,我想将它存储在 doc 的 Serialize() 函数中.我不想将它们存储为 CString,因为它会在其中写入自己的内容,而我的目标是创建一个我知道其格式并且可以被其他应用程序读取而无需 CString 的文件.所以我想将我的 std::strings 存储为 4 字节(int)字符串长度,后跟包含该字符串的大小的缓冲区. void ..
发布时间:2022-01-12 15:25:54 C/C++开发

在 Linux 上运行 MFC 程序

我有一个相当大的基于 MFC 的程序.我的任务是让它在 Linux 上运行.我已经解释过,这将需要将程序重写为带有 STL 的直接 C++(更多工作)或 Qt/C++(更少工作).现在有人告诉我,我需要编写包装器以使每个 MFC 类在 Linux 中工作,并使用预处理器指令仅编译 Linux 或 Windows 中需要的内容.我解释说我们的通信断开了,我认为这比从头开始重写整个项目(我不必这样做来 ..
发布时间:2022-01-12 15:14:31 C/C++开发

MFC 和 STL

您会将 MFC 与 STL 混合使用吗?为什么? 解决方案 当然.为什么不呢? 我使用 MFC 作为表示层,尽管后端中的结构和类使用 STL. ..
发布时间:2022-01-12 15:10:17 C/C++开发

mfc 复制 CString 的某些部分

假设我有一个带有字符串“Bob Evans"的 CString 变量.我想从位置 4 复制到原始 CString 的末尾到一个新的 CString,但是我找不到为此的语义示例: CString original("Bob Evans");//下面是我想要做的//CString newStr = original.copy(4, original.GetLength()); 我也考虑过将变量 o ..
发布时间:2022-01-12 14:58:40 C/C++开发

为什么 STL 容器优于 MFC 容器?

以前,我使用过CArray 和CMap 等MFC 集合类.一段时间后,我切换到 STL 容器并使用了一段时间.虽然我发现 STL 好多了,但我无法指出它的确切原因.一些推理如: 它需要 MFC:不成立,因为我的程序的其他部分使用了 MFC 它取决于平台:不成立,因为我只在 Windows 上运行我的应用程序.(不需要可移植性) 在 C++ 标准中定义:好的,但 MFC 容器仍然可以工作 ..
发布时间:2022-01-12 14:42:57 C/C++开发

是否有适用于 ICU 或其他强大的 Unicode 库的 STL 和 UTF-8 友好的 C++ Wrapper

我需要一个好的 C++ Unicode 库.我需要: 以 Unicode 敏感的方式进行转换.例如,以不区分大小写的方式对所有字符串进行排序,并获取它们的第一个字符作为索引.将各种 Unicode 字符串转换为大写和小写.在合理的位置拆分文本 - 也适用于中文和日文的单词. 以区域设置敏感的方式格式化数字、日期(应该是线程安全的). 对 UTF-8(主要内部表示)的透明支持. 据我 ..
发布时间:2022-01-11 10:56:12 C/C++开发

std::vector::swap 是否使迭代器无效?

如果我交换两个向量,它们的迭代器会保持有效,现在只是指向“其他"容器,还是迭代器会失效? 也就是说,给定: 使用命名空间标准;向量x(42, 42);向量是;向量::迭代器 a = x.begin();向量::迭代器 b = x.end();x.swap(y);//a 和 b 仍然有效吗?指向 x 还是 y? std 似乎对此只字未提: [n ..
发布时间:2022-01-10 15:11:00 C/C++开发

如何在不暴露使用的容器的情况下暴露迭代器?

我使用 C# 已经有一段时间了,回到 C++ 是一件很头疼的事情.我正在尝试将我的一些实践从 C# 带到 C++,但我发现了一些阻力,我很乐意接受你的帮助. 我想为这样的类公开一个迭代器: 模板我的容器类{上市://这里是问题://MyIterator 的 typedef 没有公开暴露 std::vector?MyIterator Begin() { return mHi ..
发布时间:2022-01-10 15:10:45 C/C++开发

测试迭代器是否指向最后一项?

我有一个由 std::find() 产生的 stl 迭代器,并希望测试它是否是最后一个元素.一种写法如下: 我的 *match = someValue;矢量我的(一些内容);向量::iterator itr = std::find(Mine.begin(), Mine.end(), match);if (itr == --Mine.end()) {做一点事;} 但在 ..
发布时间:2022-01-10 15:09:41 C/C++开发

C++ 迭代器到 const_iterator

如何在 C++ 中从 iterator(该容器类的)获取一个 const_iterator(某个容器类的)?insert_iterator 中的 const_iterator 怎么样?生成的 iterator 应该指向与原始位置相同的位置. 解决方案 容器需要提供 iterator 作为可转换为 const_iterator 的类型,所以可以隐式转换: Container::iterat ..
发布时间:2022-01-10 15:02:34 C/C++开发

“通用"C++中的迭代器

我有: void add_all_msgs(std::deque::iterator &iter); 如何使该函数“通用",以便它可以采用任何类型的输入迭代器?我真的不在乎它是否在迭代双端队列、向量或其他东西,只要迭代器正在迭代消息.- 这在 C++ 中是不是很简单? 解决方案 templatevoid add_all_msgs(InputIterator iter); 用法: s ..
发布时间:2022-01-10 15:00:18 C/C++开发