首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

创建C+中的字符串数组,你知道这五种方式吗?哪一种是最好的呢

在C和C ++中,字符串是一维字符数组,而在C中,字符串数组是二维字符数组。声明它们的方法有很多,这里提供了一些有用的方法。

1.使用指针:

实际上,我们通过创建指针数组来创建字符串文字数组。

C和C ++都支持此功能。

字符串数是固定的,但不是必须的。可以省略4,编译器将计算正确的大小。

这些字符串是常量,不能更改其内容。由于字符串文字(字面意思是带引号的字符串)存在于内存的只读区域中,因此我们必须在此处指定“ const”,以防止可能导致程序崩溃的不必要访问。

2.使用2D阵列:

当所有字符串的长度已知并且需要特定的内存占用空间时,此方法很有用。字符串空间将在单个块中分配

C和C ++均支持此功能。

字符串数和字符串大小都是固定的。同样,可以忽略4,而编译器将计算适当的大小。但是,必须指定第二维(在这种情况下为10),以便编译器可以选择适当的内存布局。

每个字符串都可以修改,但会占用第二维给出的全部空间。每个都将在内存中紧挨着布置,并且不能更改大小。

有时,需要控制内存占用量,这将分配具有固定规则布局的内存区域。

3.使用字符串类:

STL字符串类可用于创建可变字符串数组。在这种方法中,字符串的大小不是固定的,并且可以更改字符串。

仅C ++支持此功能,因为C没有类。

数组的大小是固定的,但不是必须的。同样,此处的4可以省略,编译器将确定数组的适当大小。字符串也是可变的,允许对其进行更改。

4.使用向量类:

STL容器Vector可用于动态分配大小可变的数组。

这仅在C ++中可用,因为C没有类。请注意,此处的initializer-list语法需要支持2011 C ++标准的编译器,尽管您的编译器很有可能支持,但需要注意。

向量是动态数组,可让您随时添加和删除项。

向量中可以使用任何类型或类,但是给定的向量只能包含一种类型。

5.使用数组类:

STL容器数组可用于分配固定大小的数组。它的用法可能与矢量非常相似,但是大小始终是固定的。

仅在C ++中支持此功能。

笔记:

这些绝不是构成字符串集合的唯一方法。C ++提供了几个容器类,每个容器类都具有不同的权衡和功能,所有这些容器类的存在都是为了满足您在项目中的要求。探索并享受乐趣!

结论:在所有方法中,Vector似乎是在C ++中创建字符串数组的最佳方法。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210308A07XTD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券