c++中<array>的使用

//在使用c语言或cpp创建数组时,大量使用new和delete,很不爽
//现在改用使用<array>,很方便,用起来和STL<vector>一样的
//执行效率比<vector>高,几乎和int myarray[5]效率一样

//将以下代码保存为testarray.cpp,格式为UTF-8,使用MinGW编译:

//g++ testarray.cpp -std=c++0x

#include <iostream> #include <array> using namespace std; int main () { //----------------------------------------------- //--这是1维数组 array<int,5> myarray={1,2,3,4,5}; //----------------------------------------------- cout <<"myarray="<<endl; for (size_t n=0; n<myarray.size(); n++){ cout << myarray[n] <<'\t'; } cout << endl; //----------------------------------------------- //当然也可以使用 cout <<"myarray="<<endl; for (size_t n=0; n<myarray.size(); n++){ cout << myarray.at(n) << '\t'; } cout << endl; //----------------------------------------------- //--这是2维数组,共3行2列 array<array<int,2>,3 > myarray2D={1,2,3,4,5,6}; //----------------------------------------------- cout <<"myarray2D="<<endl; for (size_t m=0; m<myarray2D.size(); m++){ for (size_t n=0; n<myarray2D[m].size(); n++){ cout << myarray2D[m][n] <<'\t'; } cout << endl; } cout << endl; //----------------------------------------------- return 0; }


当你想要一个执行时效率高,而用不想自己管理内存的时候,就用它

C++标准库中的`<iostream>`、`<string>`、`<vector>`、`<array>`和`<stdc++.bits>`是一些常用的库,它们各有特点: 1. `<iostream>` (Input/Output Stream): - 方便性:这个头文件包含了输入输出流操作,如`cout`, `cin`, `getline()`等,使得处理用户输入和输出非常直观。 - 空间占用:由于它包含了许多基础功能,所以编译后的代码可能会稍微大一些,但对于大多数项目来说影响不大。 - 方便性:提供了字符串的创建、处理和搜索等功能,比如`std::string`类非常实用。 - 空间占用:对于字符串操作频繁的场景,使用会增加内存消耗,特别是大型字符串。 - 缺点:若只是需要基本字符串操作,`char *`或其他更轻量级的字符串类型可能更合适。 3. `<vector>` (Standard Container - Vector): - 方便性:动态数组容器,易于扩展大小,提供了丰富的操作如push_back(), pop_back()等。 - 空间占用:相比固定大小的数组,它的内存分配策略可能造成额外的空间浪费,尤其是在频繁增删元素时。 - 缺点:不适合存储大量固定大小的数据,性能不如静态数组时。 4. `<array>` (Standard Container - Array): - 方便性:固定大小的数组,更适合存储静态大小的数据,提供了类似vector的访问和迭代功能。 - 空间占用:相比于vector,array的内存效率更高,因为它是一个连续的内存块。 - 缺点:无法动态调整大小,灵活性较差。 5. `<stdc++.bits>` (非正式的标准库的一部分,包含了一些实用工具函数): - 方便性:提供了诸如内存管理和异常处理的一些辅助函数,但不是核心功能。 - 空间占用:实际依赖情况而定,可能会引入额外的函数,但一般影响不大。 - 缺点:如果不是特别需要,可能不会频繁使用这些工具,而且不是所有编译器都支持这部分。 综上,选择使用哪一组取决于你的项目需求,例如是否需要动态扩展、内存优化或简单易用。在实际编程中,应根据具体情况平衡便利性和资源消耗。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值