在标准 C 中使用pair和make_pair
有没有办法在 C 中使用 std::pair 和 std::make_pair ?似乎它们适用于 C++。
当我使用
#include "utility"
它时,它说找不到这样的文件,
谢谢您的任何建议
Is there any way to use std::pair and std::make_pair in C? seems that they are applicable in C++.
As I used
#include "utility"
it says it can not find such file
thansk for any suggestion
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
它仅适用于 C++。 C 没有模板,因此您必须使用宏来在某种程度上模拟它们,例如:
但这确实不值得麻烦,结果代码比仅使用普通结构更冗长且不那么明显。
It's C++-only. C has no templates, so you will have to roll your own with macros to emulate them to some extent, for example:
But it's really not worth the trouble, result code is more verbose and less obvious than just using plain structs.
不,您不能在 C 中使用 STL(因为 STL 仅适用于 C++ 和 Objective-C++)。您可以使用结构体和指针来模拟
std::pair
(因为 C 不支持模板):No, you cannot use the STL in C (as the STL only works with C++ and Objective-C++). You can mimic
std::pair
with a struct and with pointers (as C doesn't support templates):不。std::pair 是 C++ 中的模板类,C 中没有类。C
中也没有与 C 中的pair 类似的东西(即易于使用的预定义数据结构)。
No.
std::pair
is a template class in C++, and there are no classes in C.There is nothing similar (ie. easily usable predefined data structure) to pairs in C either.
不,这些是来自 C++ 标准库的类型。这解释了 std:: 命名空间语法(C 也不支持命名空间)。
No, those are types from the C++ standard library. Which explains the std:: namespace syntax (C doesn't support namespaces either).
“utility”不是标准的 C 头文件。
不,标准 C++ 库完全依赖于不属于 C 语言一部分的模板。
"utility" is not a standard C header.
And no, the standard C++ library depends entirely on templates which are not part of the C language.