找到 34423 篇文章 关于编程

为什么可变长度数组不是 C++ 标准的一部分?

Abhinaya
更新于 2020年6月24日 05:52:35

415 次浏览

在栈上创建可能很大的数组,而栈通常只有很少的空间可用,这不是一个好主意。如果你事先知道大小,可以使用静态数组。如果你事先不知道大小,则会编写不安全的代码。可变长度数组不能在 C++ 中原生包含,因为它们需要对类型系统进行巨大的更改。C++ STL 中提供了可变长度数组的替代方案,即向量。你可以像这样使用它 -示例#include #include using namespace std; int main() {    vector vec;    vec.push_back(1);    vec.push_back(2);    vec.push_back(3);   ... 阅读更多

如何使用 new 在 C++ 中声明一个二维数组?

Chandu yadav
更新于 2020年2月11日 11:07:10

2K+ 次浏览

动态二维数组基本上是指向数组的指针数组。因此,您首先需要初始化指向指针的数组,然后在循环中初始化每个一维数组。示例#include using namespace std; int main() {    int rows = 3, cols = 4;    int** arr = new int*[rows];    for(int i = 0; i < rows; ++i)    arr[i] = new int[cols];    return 0; } 这将创建一个大小为 3x4 的二维数组。在这种情况下,请注意清除内存,因为您需要在... 阅读更多

之间的区别#include和#include "filename"在 C/C++ 中?

Anvi Jain
更新于 2019年7月30日 22:30:22

3K+ 次浏览

这两种形式的区别在于预处理器搜索要包含的文件的位置。#include 预处理器以实现相关的方式进行搜索,它搜索编译器预先指定的目录。此方法通常用于包含标准库头文件。#include "filename"预处理器在包含指令所在文件的同一目录中搜索。如果失败,则开始像#include 形式一样工作。此方法通常用于包含您自己的头文件。

何时在 C++ 中使用虚析构函数?

Govinda Sai
更新于 2020年2月11日 11:05:48

735 次浏览

Scott Meyers 在 Effective C++ 中说 -如果一个类有任何虚函数,它应该有一个虚析构函数,并且那些未设计为基类或未设计为多态使用的类不应该声明虚析构函数。因此,您应该在多态基类中声明析构函数为虚函数。这是因为如果您使用派生构造函数创建基类的对象 -Base *b = new Derived(); // 使用 b delete b;如果 Base 的析构函数不是虚函数,则在这种情况下 delete b 的行为未定义。对析构函数的调用将像任何非虚代码一样解析。... 阅读更多

const int*、const int * const 和 int const * 在 C/C++ 中有什么区别?

George John
更新于 2020年2月11日 11:04:26

4K+ 次浏览

上述符号表示以下含义 -int* - 指向 int 的指针。这很明显。int const * - 指向 const int 的指针。int * const - 指向 int 的常量指针 int const * const - 指向 const int 的常量指针另请注意 -const int * 和 int const * 相同。const int * const 和 int const * const 相同。如果您在阅读此类符号时遇到混淆,请记住螺旋规则:从变量的名称开始,顺时针移动到下一个指针或类型。重复直到表达式结束。

在 C++ 中标记化字符串?

Ramu Prasad
更新于 2020年2月11日 11:03:12

266 次浏览

第一种方法是使用 stringstream 读取以空格分隔的单词。这有点局限,但如果你提供了正确的检查,它可以很好地完成任务。示例#include #include #include using namespace std; int main() {    string str("Hello from the dark side");    string tmp; // 在每次迭代中存储单词的字符串。    stringstream str_strm(str);    vector words; // 创建向量以保存我们的单词    while (str_strm >> tmp) {       // 在此处为 tmp 提供正确的检查,例如如果为空       // ... 阅读更多

如何在 C++ 中读取和解析 CSV 文件?

Nitya Raut
更新于 2020年2月11日 10:54:53

3K+ 次浏览

您确实应该使用库来解析 C++ 中的 CSV 文件,因为如果您自己读取文件,可能会错过很多情况。C++ 的 boost 库提供了一套非常好的读取 CSV 文件的工具。例如,示例#include vector parseCSVLine(string line){    using namespace boost;    std::vector vec;    // 对输入字符串进行标记    tokenizer tk(line, escaped_list_separator    ('\', ', ', '\"'));    for (auto i = tk.begin();  i!=tk.end();  ++i)    vec.push_back(*i);    return vec; } int main() {    std::string line = "hello, from, ... 阅读更多

如何在 C/C++ 中设置、清除和切换位?

Chandu yadav
更新于 2020年2月11日 10:52:13

8K+ 次浏览

您可以使用 C、C++、Python 和所有支持这些操作的其他编程语言中的按位运算符来设置、清除和切换位。您还需要使用位移运算符将位移到正确的位置。设置位要设置位,我们需要使用按位或运算符 -示例#include using namespace std; int main() {    int i = 0, n;        // 输入要设置的位:    cin >> n;    i |= (1 > n;    i ^= (1

如何在 C++ 中比较浮点数和双精度数?

Sravani S
更新于 2020年6月24日 05:41:44

632 次浏览

比较浮点数和双精度数变量取决于您的最终目标。如果您想要一个可运行的函数,而无需过多详细说明,并且在某些不准确的计算中不会有问题,则可以使用以下函数 -示例#include using namespace std; // 定义您可以容忍的误差 #define EPSILON 0.000001 bool areSame(double a, double b) {    return fabs(a - b) < EPSILON; } int main() {    double a = 1.005;    double b = 1.006;    cout

如何使用 C++ 指针从不同的函数访问局部变量?

George John
更新于 2020年6月24日 05:42:36

1K+ 次浏览

一旦局部变量超出作用域,您就无法访问它。这就是局部变量的含义。尽管如此,让我们看一个您可能能够在作用域之外访问局部变量内存的示例。示例#include int* foo() {    int x = 3;    return &x; } int main() {    int* address = foo();    cout

广告