找到关于编程的34423 篇文章

遍历 C++ STL 中的 map(或 unordered_map)

Arnab Chakraborty
更新于 2020-08-27 13:51:33

2K+ 次浏览

在这里,我们将了解 map 容器及其在 C++ 中的用法。map 被定义为关联容器,它以哈希映射的方式存储元素。每个元素都与一个键和一个值相关联。没有两个映射值可以具有相同的键。以下是 C++ 中 map 容器中的一些基本方法:begin():返回 map 中第一个元素的迭代器。end():返回 map 中最后一个元素之后理论元素的迭代器。size():返回 map 中元素的数量。max_size():返回 map 的最大元素数量……阅读更多

C++ STL 中的堆 - make_heap()、push_heap()、pop_heap()、sort_heap()、is_heap、is_heap_until()

Arnab Chakraborty
更新于 2020-08-27 13:49:11

1K+ 次浏览

在本节中,我们将了解 C++ STL 中的堆数据结构。它允许更快地将数据输入堆中,并且每次检索到的数字总是最大的数字,即每次弹出剩余数字中最大的数字。堆的其他元素的排列取决于实现方式。堆操作如下:make_heap():将容器中的一个范围转换为堆。front():返回堆的第一个元素,也就是最大的数字。示例让我们看下面的实现来更好地理解:实时演示#include using namespace std; int ... 阅读更多

在 C++ 中使用复数进行几何运算

Arnab Chakraborty
更新于 2020-08-27 13:46:10

225 次浏览

在本节中,我们将了解如何使用 C++ 中 STL 中的 complex 类创建点类,并将它们应用于一些与几何相关的的问题。复数位于 STL 的 complex 类中(#include )。定义点类为了将 complex 转换为点,我们将 complex 的名称更改为 point,然后将 x 更改为 complex 类的 real(),将 y 更改为 complex 类的 imag()。这样,我们可以模拟点类。# include typedef complex point; # define x real() # define y imag()我们必须记住,x 和 y ... 阅读更多

在 C++ 中生成测试用例 (generate() 和 generate_n())

Arnab Chakraborty
更新于 2020-08-27 13:43:39

228 次浏览

在本节中,我们将了解如何使用 C++ STL 函数生成测试用例。有时,为数组程序生成测试用例可能是一个非常复杂且低效的过程。C++ 提供了两种生成测试用例的方法。这些方法如下:generate() 方法C++ 函数 std::algorithm::generate() 将后续调用 gen 返回的值分配给 first 到 last 范围内的元素。它接受三个参数 first、last 和 gen,它们分别是指向初始位置的正向迭代器、指向最终位置的反向迭代器以及一个不带参数调用的生成器函数……阅读更多

检查 Python 中的数是否为素数阶乘素数

Arnab Chakraborty
更新于 2020-08-27 13:41:55

705 次浏览

假设我们有一个数字 n,我们必须检查 n 是否为素数阶乘素数。如果一个数是 pN# + 1 或 pN# – 1 的形式的素数,则称该数为素数阶乘素数,其中 pN# 表示 pN 的素数阶乘,即前 N 个素数的乘积。因此,如果输入类似于 29,则输出将为 True,因为如果 N=3,则 29 是 pN - 1 形式的素数阶乘素数,素数阶乘为 2*3*5 = 30,而 30-1 = 29。为了解决这个问题,我们将遵循以下步骤……阅读更多

在 C++ 中生成高斯滤波器

Arnab Chakraborty
更新于 2020-08-27 13:41:20

1K+ 次浏览

众所周知,高斯滤波在图像处理领域非常有用。它用于减少图像噪声。在本节中,我们将了解如何生成二维高斯核。生成二维核的高斯分布如下所示:$$G(x,y)= \frac{1}{2\Pi\:\sigma^{2}}e^{\frac{x^{2}+y^{2}}{2\sigma^{2}}}$$示例让我们看下面的实现来更好地理解:实时演示#include #include #include #define PI 3.1415 using namespace std; void calc_filter(double kernel[][5]) {    double sigma = 1.0;    double p, q = 2.0 * sigma * sigma;    double sum = 0.0;    for (int x = -2; x

在 C++ 中使用 STL 函数返回的指针计算索引

Arnab Chakraborty
更新于 2020-08-27 13:39:36

134 次浏览

在本节中,我们将了解如何在 C++ 中使用 STL 返回的指针生成索引。众所周知,C++ 中的许多内置函数返回指向内存中位置的指针,该位置提供所需数字的地址,但它与返回的值的容器中的实际索引无关。例如,要确定代码中的最大元素,我们使用 std::max_element() 函数,它不返回所需元素的索引,而是返回内存中的地址。但有时,我们需要从该地址获取索引。这里……阅读更多

检查 Python 中的数是否为阿基里斯数

Arnab Chakraborty
更新于 2020-08-27 13:38:56

193 次浏览

假设我们有一个数字 n;我们必须检查 n 是否为阿基里斯数。众所周知,如果一个数是强大的(如果一个数 N 的每个素数因子 p,p^2 也能整除它,则称该数 N 为强大数),但不是完全幂,则称该数为阿基里斯数。阿基里斯数的一些例子是:72、108、200、288、392、432、500、648、675、800、864、968、972、1125。因此,如果输入类似于 108,则输出将为 True,因为 6 和 36 都能整除它,并且它是……阅读更多

如何在 C++ 中创建一个其对象只能动态分配的类?

Arnab Chakraborty
更新于 2020-08-27 13:37:16

285 次浏览

在这个问题中,我们将了解如何创建一个类,对于该类,我们只能通过动态内存分配来创建对象,不允许直接创建对象。这个想法很简单。我们必须为该类创建一个私有析构函数。当析构函数为私有时,编译器会为非动态分配的对象生成编译器错误,因为编译器需要在这些对象不可用时将它们从堆栈段中删除。对于动态分配的对象,程序员负责删除对象,但编译器不负责,因此它允许动态创建对象。为了避免内存……阅读更多

为什么 C++ 中空类的尺寸不为零?

Arnab Chakraborty
更新于 2020-08-27 13:33:22

2K+ 次浏览

假设我们在 C++ 中有一个空类。现在让我们检查它的尺寸是否为 0。实际上,标准不允许大小为 0 的对象(或类),这是因为这将使两个不同的对象具有相同的内存位置成为可能。这就是即使是空类也必须至少具有 1 个大小的概念背后的原因。众所周知,空类的尺寸不为零。通常为 1 个字节。请参见以下示例。示例让我们看下面的实现来更好地理解:实时演示#include ... 阅读更多

广告
© . All rights reserved.