找到 34423 篇文章 相关编程

C++ 中的“依赖于参数的查找”(“Koenig 查找”)是什么?

Chandu yadav
更新于 2020-02-12 06:34:31

227 次浏览

依赖于参数的查找 (ADL) 是一种用于在函数调用表达式中查找非限定函数名的协议。这些函数调用表达式包括对重载运算符的隐式函数调用。除了通常的非限定名称查找所考虑的作用域和命名空间之外,还在其参数的命名空间中查找函数名。依赖于参数的查找使得使用在不同命名空间中定义的运算符成为可能。示例命名空间 MyNamespace{ 类 A {}; void f(A& a, int i) {} } int main() { MyNamespace::A a; f(a, 0); // 调用 MyNamespace::f }对 f 的函数调用的查找依赖于... 阅读更多

"STL" 和 "C++ 标准库" 之间有什么区别?

Govinda Sai
更新于 2020-06-24 06:31:32

2K+ 次浏览

标准模板库 (STL) 是 C++ 编程语言的一个软件库,它影响了 C++ 标准库的许多部分。它提供四个组件,称为算法、容器、函数和迭代器。请注意,术语“STL”或“标准模板库”在 ISO 14882 C++ 标准中没有任何出现。因此,将 C++ 标准库称为 STL 是错误的,即 STL 和 C++ 标准库是两件不同的事情,前者是后者的子集。STL 包含容器STL 包含序列容器和关联容器。容器是存储数据的对象。容器... 阅读更多

为什么 C++ 程序员应该尽量减少使用 'new'?

Ankith Reddy
更新于 2020-03-02 08:07:45

63 次浏览

new 用于动态内存分配。在这种情况下分配的内存位于堆上。此类内存分配涉及多项成本,并且程序员必须进行手动内存清理和管理。必须在以下情况下使用此类分配:- 您在编译时不知道需要多少内存。您想要分配在离开当前块后仍将保留的内存。除此之外,很少有情况需要动态内存分配。这是因为,在 C++ 中,存在析构函数的概念。此函数被调用... 阅读更多

C++ 中的“翻译单元”是什么?

Srinivas Gorla
更新于 2019-07-30 22:30:22

2K+ 次浏览

翻译单元是任何预处理的源文件。翻译单元是 C++ 中编译的基本单元。此单元由单个源文件在经过预处理后的内容组成。它包含任何包含的头文件,但不包含使用条件预处理语句(如 ifdef、ifndef 等)忽略的块。单个翻译单元可以编译成目标文件、库或可执行程序。

将整个 ASCII 文件读入 C++ std::string

George John
更新于 2020-06-24 06:32:57

14K+ 次浏览

这是一种将整个 ASCII 文件读入 C++ 中的 std::string 的简单方法:算法开始 声明一个名为 a.txt 的文件,使用 ifstream 类型文件对象 f 执行读取操作。 声明一个字符串类型的变量 str。 如果 (f) 声明另一个 ostringstream 类型的变量 ss。 调用 rdbuf() 函数读取文件对象的数据。 将文件对象的数据放入 ss 中。 将 ss 的字符串放入 str 字符串中。 打印 str 的值。结束。示例#include #include #include #include using namespace std; int ... 阅读更多

C/C++ 中段错误的常见原因列表

Ramu Prasad
更新于 2020-01-27 12:38:34

4K+ 次浏览

段错误的主要原因是访问未初始化的内存、超出程序范围的内存或尝试修改字符串文字。这些可能会导致段错误,尽管不能保证它们会导致段错误。以下是导致段错误的一些常见原因:数组越界访问空指针的反引用已释放内存的反引用未初始化指针的反引用"&"(地址)和 "*"(反引用)运算符的使用不当printf 和 scanf 语句中格式说明符不正确堆栈溢出写入只读内存

C++ 中 private、public 和 protected 修饰符之间的区别

Nikitha N
更新于 2020-06-24 06:33:56

6K+ 次浏览

数据隐藏是面向对象编程的重要特性之一,它允许防止程序的函数直接访问类类型的内部表示。对类成员的访问限制由类体内的带标签的访问修饰符指定:public、private 和 protected 部分。成员和类的默认访问权限为 private。示例类 Base { public: // 公共成员放在这里 protected: // 受保护的成员放在这里 private: // 私有成员放在这里 };公共成员可以从类外部但在程序内部的任何地方访问。... 阅读更多

如何在 C++ 中使用 cout 以完全精度打印双精度值?

Arjun Thakur
更新于 2020-06-24 06:34:50

1K+ 次浏览

输出流 cout 允许使用操纵符,您可以使用这些操纵符直接在 cout 上设置精度并使用固定格式说明符。要获得双精度的完全精度,您可以使用 limits 库。例如,示例#include #include using namespace std; int main() { // 获取双精度数值限制 typedef std::numeric_limits<double> dbl; double PI = 3.14159265358979; cout.precision(dbl::max_digits10); cout

如何在 C++ 中将 std::string 转换为 const char* 或 char*?

Sravani S
更新于 2020-02-12 06:30:54

17K+ 次浏览

您可以使用 string 类的 c_str() 方法获取包含字符串内容的 const char*。示例#include using namespace std; int main() { string x("hello"); const char* ccx = x.c_str(); cout

C/C++ 中的编译/链接过程是如何工作的?

Chandu yadav
更新于 2020-01-27 12:37:53

4K+ 次浏览

C++ 程序的编译包括三个步骤:预处理 - 简单来说,C 预处理器只是一个文本替换工具,它指示编译器在实际编译之前执行所需的预处理。它处理诸如 #include、#define 等预处理指令。编译 - 编译在预处理的文件上进行。编译器解析纯 C++ 源代码并将其转换为汇编代码。这反过来又调用汇编器,将汇编代码转换为机器代码(二进制)作为目标文件。这些目标文件可以引用未定义的符号。编译器不会给出... 阅读更多

广告