C++ std::array 基本用法

#include <iostream>
#include <string>
#include <array>

using namespace std;

// https://zh.cppreference.com/w/cpp/container/array

int main()
{
	///array<int, 3> arr({ 1,2,3 }); // 非法

	array<int, 3> arr1{ { 1,2,3 } }; // 不可以扩容,属于固定大小的数组。
	array<int, 3> arr2 = { 1,2,3 };

	array<std::string, 2> arr3 = {"aaa", "bbb"};

	auto vBack = arr2.back();
	auto bFront = arr2.front();

	array<int, 0> arr4 = { 1 }; // 居然合法。结果是 arr4 size = 0,为空。
	array<int, 0> arr5;

	///auto vBack5 = arr5.back(); // back 和 front 操作不允许空array,所以执行前需要检查
	///auto bFront5 = arr5.front();

	array<int, 3> arr6 = { 11,12,13};
	arr6.swap(arr2); // swap, arr6 和 arr2 的大小必须一致。

	// 填充数组
	arr6.fill(152); 

}

  

原文地址:https://www.cnblogs.com/alexYuin/p/12042069.html

时间: 2024-10-08 22:26:46

C++ std::array 基本用法的相关文章

C++11新特性之 std::array container

数组每个人都很熟悉,vector更是我们常常用到的. 但是某些场合,使用vector是多余的,尤其能明确元素个数的情况下,这样我们就付出了效率稍低的代价! 但是你使用数组的代价是那么的不安全,那么的不方便. 于是,C++11推出了模板类array,位于std名称控件中. 与vector不同的是,array对象的长度是固定的,使用了静态存储区,即存储在栈上,效率跟数组相同,但是更加的安全. 首先需要包含头文件array,而且语法与vector也有所不同: #include<array> ...

类模板 &quot;std::array&quot; 的参数太少

在从VS2013项目迁移过来的时候,用的array<System::String ^> ^出现错误错误(活动)    E0442    类模板 "std::array" 的参数太少 这时候是因为C++ 11引入了std::array 向量变量,导致的模糊不清,这时候只要指定,为cli下即可 cli::array<System::String ^> ^ 原文地址:https://www.cnblogs.com/badprogrammer/p/9928356.htm

string array的一些小总结(初学者可以看一看,string array的用法很重要,用处很多)

string的总结 charat 用法:n = String.charAt(string, index):传入的是一个字符串和一个数字:列:var a = String.charAt("world",2);var b = String.charAt("world",0);var c = String.charAt("world",10);产生的结果就是a = "r"b = "w"c = "&quo

C++ std::map::erase用法及其陷阱

1.引入: STL的map中有一个erase方法用来从一个map中删除制定的节点 eg: map<string,string> mapTest; typedef map<string,string>::iterator ITER; ITER iter=mapTest.find(key); mapTest.erase(iter); 像上面这种删除单个节点,map的行为不会出现问题,但是当在一个循环里用的时候,往往会被误用. 2.陷阱 eg: for(ITER iter=mapTest

vector 和array的用法

模板类vector 模板: 1 vector<typename>vt(n_elem); 其中n_elem可以是整型常量,也可以是整形变量.如: 1 #include<vector> 2 ... 3 using namespace std; 4 vector<int>vi;//大小为0 5 int n; 6 cin>>n; 7 vector<double>vd(n); 模板类array(c++11) 1 array<typename,n_el

JS中Array详细用法

1.数组的创建 var name= new Array(); //创建一个数组 name[0]="zhangsan";   //给数组赋值 name[1]="lisi"; var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 var name=["zhangsan","lisi"];       //创建一个数组并赋值 var name=new Array(&qu

C++ std::pair的用法

1 pair的应用 pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存.另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair. pair的实现是一个结构体,主要的两个成员变量是first second 因为是使用struct不是class,所以可以直接使用pair的成员变量. 2 make_pair函数 template pair make_pair(T1 a, T2 b) { return pair(a

STL std::pair基本用法

std::pair 是一个结构体模板,其可于一个单元内存储两个相异对象.是 std::tuple 的拥有两个元素的特殊情况. 一般来说,pair 可以封装任意类型的对象,可以生成各种不同的 std::pair<T1, T2> 对象,可以是数组对象或者包含 std::pair<T1,T2> 的 vector 容器.pair 还可以封装两个序列容器或两个序列容器的指针. 1. 定义 #include <utility> template<class T1, class

JS中数组Array的用法示例介绍 (转)

new Array() new Array(len) new Array([item0,[item1,[item2,...]]] 使用数组对象的方法: var objArray=new Array(); objArray.concact([item1[,item2[,....]]]-------------------将参数列表连接到objArray的后面形成一个新的数组并返回,原有数组不受影响.如:var arr=["a","b","c"];