问题标签 [std]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
34774 浏览

c++ - 将 BOOST_FOREACH 与 std::map 一起使用

我想使用 BOOST_FOREACH 迭代 std::map 并编辑值。我不太明白。

当然,这不会改变任何事情,因为我没有通过引用进行迭代。所以我用这一行代替(根据 Boost 文档中的示例):

我得到编译器错误:

有什么建议么?

0 投票
7 回答
657 浏览

c++ - 在 c++ 中仅使用 std::string 而不是 char 数组和 std::vector/list 而不是数组是否有任何实际限制?

我在我的代码中痴迷地使用向量、列表、字符串和 wstrings。是否有任何涉及到的 catch 22 让我对不时使用数组、chars 和 wchars 更感兴趣?

基本上,如果在支持标准模板库的环境中工作,是否有任何情况下使用原始类型实际上更好?

0 投票
9 回答
71128 浏览

c++ - const unsigned char * 到 std::string

sqlite3_column_text 返回一个 const unsigned char*,如何将其转换为 std::string?我试过 std::string(),但我得到一个错误。

代码:

错误:

0 投票
3 回答
2052 浏览

c++ - CLR 干扰 C++ STD?

我有一些在 clr 下编译的代码和其他在单个项目中不受管理的代码。

我的 common.h 文件包含我需要的所有标准库头文件。它包含在 manager.h(manager.cpp(无 CLR)的前向声明)中,它包含在 main_window.h(WinForm)中,而 main_window.h(WinForm)包含在 document_manager.cpp(CLR)中。

在运行时,我会遇到各种奇怪的行为,在一种情况下,我的表单无法加载。暂停程序进行多次调试表明它在 malloc.c 中为 std::string 重新分配内存时卡住了。通过更改代码,我可以在 ostream 中收到 System::InvalidMemory(我认为)异常。

如何阻止 CLR 管理 std 库?

如果有人想要我的任何文件的来源,请问。

编辑:在调用堆栈中,我有一些在我的表单加载时运行的托管代码。在窗口初始化回调中,我有一个管理到本机的转换,然后是我的管理器类。后来,我到

并且调用堆栈显示 std::basic_string::assign,然后是其他一些 std:: 函数,最后是 malloc 函数,它永远卡在其中。

编辑:文件写入引发的异常:

0 投票
17 回答
109172 浏览

c++ - 令人信服的自定义 C++ 分配器示例?

std::allocator放弃定制解决方案有哪些真正好的理由?您是否遇到过任何对正确性、性能、可扩展性等绝对必要的情况?有什么非常聪明的例子吗?

自定义分配器一直是我不太需要的标准库的一个特性。我只是想知道这里是否有人可以提供一些令人信服的例子来证明他们的存在。

0 投票
2 回答
216 浏览

c++ - 将 += 与字符串一起使用时的 Stange 段错误

必须有一些明显的东西我没有意识到这个关于 C++ 的东西。

在 GDB 中,当我在函数开头“打印”文件名时,我得到: (const string &) @0x9505f08: {static npos = 4294967295, _M_dataplus = {> = {<__gnu_cxx::new_allocator> = {}, }, _M_p = 0x950a8e4 "../config/pythonFile.py"}}

到底是什么,文件名的格式如何不正确,这样 .append() 有效而 += 无效?!C++ 中的重载函数 += 有什么奇怪的吗?

g++ 版本 3.4.6

0 投票
7 回答
54532 浏览

c - 使用 fscanf() 读取一行时遇到问题

我正在尝试使用以下代码读取一行:

但不知何故,我每次都只得到第一行。这是读一行的坏方法吗?我应该修复什么以使其按预期工作?

0 投票
5 回答
3062 浏览

c++ - 为什么从 std::vector 中随机删除比 std::list 快?

为什么从 std::vector 中随机删除比 std::list 快?我正在做的加快它的是将随机元素与最后一个交换,然后删除最后一个。我原以为该列表会更快,因为它是为随机删除而构建的。

结果(以秒为单位):
Vec 交换删除:0.00000909461232367903
列表正常删除:0.00011785102105932310

0 投票
6 回答
3748 浏览

c++ - 在不使迭代器失效的情况下添加和删除项目

我有一个包含“观察者”列表的对象。这些观察者会收到通知,并且他们可能会通过从对象中添加或删除自己或其他观察者来响应此更改。

我想要一种强大的,而不是不必要的缓慢的方式来支持这一点。

我可能有一个由 add_ 和 remove_ 设置的标志来重置我的迭代器,如果它变得无效,然后可能在每个观察者中设置一个“生成”计数器,这样我就知道我是否已经调用它了?

0 投票
4 回答
5780 浏览

c - strtol、strtod 不安全吗?

似乎strtol()strtod()有效地允许(并强制)你抛弃字符串中的常量:

上面,我自己没有进行任何演员表。但是,strtol()基本上将 myconst char *放入一个char *for me 中,没有任何警告或任何东西。(事实上​​,它不允许你键入baras a const char *,因此会强制进行不安全的类型更改。)这不是很危险吗?