找到关于编程的34423 篇文章

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

Chandu yadav
更新于 2020年2月12日 06:34:31

227 次浏览

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

“STL”和“C++标准库”有什么区别?

Govinda Sai
更新于 2020年6月24日 06:31:32

2K+ 次浏览

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

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

Ankith Reddy
更新于 2020年3月2日 08:07:45

63 次浏览

new 用于动态内存分配。在这种情况下分配的内存位于堆中。这种类型的内存分配与程序员必须进行手动内存清理和管理相关的几种成本。当以下情况发生时,必须使用这种类型的分配:- 你在编译时不知道需要多少内存。你想要分配在离开当前块后仍然存在的内存。除此之外,很少有需要动态内存分配的情况。这是因为在 C++ 中,存在析构函数的概念。此函数会在…… 阅读更多

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

Srinivas Gorla
更新于 2019年7月30日 22:30:22

2K+ 次浏览

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

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

George John
更新于 2020年6月24日 06:32:57

14K+ 次浏览

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

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

Ramu Prasad
更新于 2020年1月27日 12:38:34

4K+ 次浏览

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

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

Nikitha N
更新于 2020年6月24日 06:33:56

6K+ 次浏览

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

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

Arjun Thakur
更新于 2020年6月24日 06:34:50

1K+ 次浏览

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

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

Sravani S
更新于 2020年2月12日 06:30:54

17K+ 次浏览

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

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

Chandu yadav
更新于 2020年1月27日 12:37:53

4K+ 次浏览

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

广告