问题标签 [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 投票
7 回答
3959 浏览

c++ - C ++中EOF的无限循环

这段代码大部分都按预期工作,即提示用户输入单个字符,执行相关操作,提示用户按回车键,然后重复。但是,当我在提示符下输入 ^D (EOF) 时,会发生无限循环。我正在通过 std::cin.clear() 清除错误状态并调用 std::cin.ignore(...) 来清除缓冲区。什么可能导致无限循环?

如果重要的话,我正在 Mac OS X 终端中运行它。


更新:我在这里真正要问的是,当用户在提示符处输入 EOF (^D) 时,我如何 (a) 检测它并 (b) 重置流,以便用户可以继续输入数据。

以下示例与上面的代码不同,但说明了在检测到 ^D 后清除流并继续从该流中读取的相同原理。

0 投票
2 回答
2210 浏览

c - 为什么 stdlib.h 的 abs() 系列函数返回有符号值?

手册页中指出了这一点的负面影响:

NOTES 没有定义试图取最大负整数的绝对值。

这背后的原因是什么?对于想要避免未定义行为的人来说,最好的办法是什么?我是否必须求助于:

(故意 hacky 以强调对 stdlib 的不满 ;-)

例子

假设您有一个 4 位有符号值(为了便于理解)。无符号最大值为 15,有符号(正)最大值为 7,有符号(负)最小值为 -8,因此 abs(-8) 不适合有符号值。当然,您可以将其表示为 -8,但是结果的除法和乘法不能按预期工作。

0 投票
2 回答
16708 浏览

c++ - 你如何在 XCode + C++ 中使用 std::vector?

由于各种原因(我向你保证它们是有效的,所以请不要说“使用 Cocoa”),我必须使用 XCode、C++、OpenGL、OpenCL(旁边有一点 GLUT)在 Mac 上重建一些图形演示(来自 XP + Visual Studio 2005 开发)。该项目是使用“c++ stdc++”作为命令行工具构建的。

我的 Program.h 文件将我的着色器对象连接在一起、编译、链接,并以其他方式准备它们以用作 OpenGL 着色器程序。此文件中包含以下相关代码行:

并在班级的私人部分:

添加着色器句柄时:

最后,当使用推送着色器句柄时:

根据我所有的经验和研究,C++ 中的这些行没有错。但是在编译的时候(无论是debug还是release,所以和问题无关_GLIBCXX_DEBUG),会产生如下4个错误:

此外,链接到 stl_bvector.h 和 vector.tcc 的文件是:

到目前为止,许多谷歌搜索都没有结果。所有这些代码都可以在 Windows 上完美运行。更糟糕的是,如果我用列表等价物替换上面的代码:

和,

和,

该程序按预期工作。

但是不能将这完全归咎于向量实现,因为以下程序:

工作没有问题。

我很乐意在必要时提供更多信息。

请不要告诉我我应该使用 Cocoa/Objective-C;现在这不是一个真正的选择。虽然是的,但我可以使用列表来完成此功能,但我的演示的其他部分并不那么容易重做。

0 投票
4 回答
16986 浏览

c++ - 确定 std::istream 长度的更好方法?

有没有比以下更好的方法来确定 std::istream 的长度:

必须寻找到流的末尾然后寻找到原始位置似乎真的很浪费,特别是如果流可能是一些慢速媒体(如 CD 或 DVD)上的文件。

0 投票
3 回答
140 浏览

c++ - 在标准地图元素上调用函数而不先插入它

下面的代码可以吗?

还是我必须执行以下操作:


而且,我可以这样做:

以及如何通过引用访问:

0 投票
3 回答
3660 浏览

php - foreach 循环和标准类对象

我在这里看到了类似的问题,但我似乎无法将解决方案应用于我的问题。我有一个名为 $results 的变量,它是从 API 获得的。我将更改专有名词以保护我工作的客户:

我在这里将其缩短为两个条目,但条目的数量会有所不同,这是过去一小时内检查交易的结果,有时可能只有一个,有时可能多达十几个。

我想将这些条目分配给 websiteId1 websiteId2 等变量。我知道我需要做一个 foreach 循环,但似乎无法弄清楚。如何编写它以便我也得到“[详细信息]”?

0 投票
4 回答
1873 浏览

c++ - while循环中的C ++ STD Cin错误

为什么当我进入下面的循环并输入第一条指令 cmdstd:getline(std::cin,cmdInput); 不读取输入的输入。例如,如果我输入“b 8”,它应该显示“cmd is b 8”,但它会跳到下一个读取 std::getline(std::cin, input); 并改为显示“它是 b”

0 投票
2 回答
1654 浏览

c++ - std::map find 无法正常工作

std::map.find() 旨在将 map::iterator 返回到它找到的元素(如果有的话)或 end() 如果没有的话。我将 BadPtr 退回给我。完全相同的构造在代码的另一部分工作正常。这是什么?

map::iterator 被包装是为了让操作符 * 和 -> 分别返回 OntologyClass 对象和指针:

0 投票
2 回答
4072 浏览

c++ - 变体 bstr 到 std::string 转换的默认编码

我有一个从 MSXML DOM 中提取的变体 bstr,所以它是 UTF-16。我试图弄清楚这种转换会发生什么默认编码:

通过测试,我相信默认编码是 Windows-1252 或 Ascii,但不确定。

顺便说一句,这是我正在修复并将变体转换为 wstring 并通过调用 WideCharToMultiByte 进行多字节编码的代码块。

谢谢!

0 投票
26 回答
326826 浏览

c++ - 错误 C2065:“cout”:未声明的标识符

我正在处理我的编程任务的“驱动程序”部分,我不断收到这个荒谬的错误:

错误 C2065:“cout”:未声明的标识符

我什至尝试过使用std::cout但我收到另一个错误消息:IntelliSense: namespace "std" has no member "cout"当我声明使用命名空间 std,包括 iostream + 我什至尝试使用ostream

我知道这是一个标准的菜鸟问题,但这让我很困惑,我是新手(意思是:我以前编程过......)

我正在使用 Visual Studio 2010 并运行 Windows 7。所有 .h 文件都有“使用命名空间 std”并包括 iostream 和 ostream。