矢量在c.C已影响大多数流行的现代编程语言,如Perl,Java,Python和C ++,以某种程度或其他程度。因此,许多程序员认为知道C代码使得学习新语言更容易。然而,C是一种完整的语言本身,它仍然可以在任何地方使用,甚至在创建它之后超过四十年。C对其继任者进行了一些优势。它是一种低级语言,这意味着它靠近机器级语言。这使得编译和运行比C ++或其他语言更快。C编译器也广泛可用,并且可以在几乎任何机器上使用。

此外,C可以几乎可以做其他现代语言可以的一切,尽管它可能需要一段时间来实现。vectors是一种现代化的编程概念,不幸的是,不建立在标准C库中。它们位于C ++中,它是一个面向对象的C.基本上的编程扩展,矢量取代C ++中的数组。在本教程中,我们将概述如何复制C中的向量。这是一个中级教程。您需要熟悉C的基础知识来了解本教程。如果您是C编程新的,我们会先建议您参加此初学者课程以学习基础知识

阵列与vectors.

Before we begin with how we can replicate vectors in C, let’s take a look at the major differences between arrays and vectors, and why exactly you might need vectors in C. Arrays are a special type of variable that can store multiple data values of the same type. In C, you have to declare an array with a specific size before you can use it. The array will then be able to store data, according to its size. You cannot store more data than the initial array size you specified. This means that your arrays have to be perfectly sized – you can’t increase the size later if you need to. You will have to get your research right before you create an array for a large, complex program. Additionally, arrays can only store primitive data types, like int or float.

矢量是您以C ++为面向对象的语言找到的数组。像阵列一样,他们可以存储多个数据值。但是,与数组不同,它们无法存储原始数据类型。它们仅存储对象引用 - 它们指向包含数据的对象而不是存储对象本身。此外,您不必声明向量的大小。当您使用对象引用或删除它们时,它会增长或缩小。矢量还具有几种安全功能,使其更容易使用,而且您的程序崩溃的机会较小。要了解有关向量和数组的更多信息,您可以查看我们的主题的教程。你也可以注册此过程- 我们更详细地涵盖数据结构基础知识。您可以看到为什么Vectors听起来比阵列更有用,为什么它们可能在C中有用。然而,C不是面向对象的语言,因此创建一个真实的向量几乎不可能。但是,我们可以在几种不同的方式中创建一个伪矢量。

复制C中的向量

您可以使用数据结构来保存向量。您希望使用typedef关键字创建自己的数据类型(向量类型):

typedef strambymend_vector {int *数据;size_t限制;//矢量size_t电流的总大小;//目前其上的矢量数量} Vectorv;

在这里,我们创建了自己的结构,这些结构将模仿矢量。typedef关键字允许您定义具有不同名称的数据类型。在这种情况下,我们已经使用了结构动态_Vector的名称向量。结构是C中的数据类型,其包含具有不同值的项目。它还能够持有不同的数据类型,如int,char和float,没有问题。你可以看到为什么这对我们来说是完美的。“结构”关键字初始化结构并告诉C它有三个值:指针,矢量的指针,限制(或总大小)和当前值(此刻中的向量中存在的元素总数)。

声明了一个结构后,您将想要编写帮助结构模拟矢量工作方式的功能。为了真正知道矢量如何工作,您需要研究与向量处理的C ++中找到的各种方法。你可以在C ++上乘坐这门课程来了解更多信息。例如,我们需要写入的功能之一是使结构能够动态地增加或减少其“限制”,因此当元素添加到它时,它应该自动扩展。为此,我们需要realloc函数。Realloc功能完全是什么?它更改了Malloc函数以前使用的内存块的大小。因此,从理论上讲,我们现在需要更大的尺寸。Realloc函数的语法如下:

void * Realloc(Void * current_ptr,size_t new_size)

这里,Current_PTR将是当前大小,而New_size参数将让我们指定新大小。您将希望使New_size值为Current_ptr值,以防止所有时间都需要调用Realloc。这只是您需要写入的功能的开头。您需要编写要为其添加元素的函数,删除元素,完全删除矢量或创建新向量。您还需要考虑C内存管理如何创建不会继续崩溃的程序。了解有关与本课程编写有效C程序的更多信息。

C#中的顶级课程

用于初学者的#.NET
里克菲利普斯
4.4 (1,263)
完成C#Unity Game Developer 3D
Ben Tristem,Rick Davidson,Gamev.TV团队
4.7 (26,808)
畅销书
C#中间:类,接口和OOP
Mosh Hamedani.
4.6 (23,125)
畅销书
RPG核心作战创造者:学习中级Unity C#编码
Ben Tristem,Rick Davidson,Sam Pattuzzi,Gamev.TV团队
4.7 (8,487)
C#高级主题:准备技术访谈
Mosh Hamedani.
4.5 (15,107)
完成C#MasterClass
Denis Panjuta,Tutorials.eu by Denis Panjuta
4.5 (12,001)
C#和.NET中的设计模式
Dmitri nesteruk.
4.4 (7,102)
畅销书
C#开发人员:使用Visual Studio双倍编码速度
Mosh Hamedani.
4.5 (2,647)
畅销书
使用C#和.NET学习并行编程
Dmitri nesteruk.
4.5 (2,035)
畅销书
Unity C#脚本:完成C#以获得Unity Game开发betwayapp下载安装
Raja Biswas,Charger Games
4.5 (1,388)
畅销书

更多C#课程

C#学生也会学习

赋予你的团队。引领行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求演示