c++新特性11 stdarray

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++新特性11 stdarray相关的知识,希望对你有一定的参考价值。

1. std::array 对象的大小是固定的,如果容器大小是固定的,那么可以优先考虑使用 std::array 容器。 另外由于 std::vector 是自动扩容的,当存入大量的数据后,并且对容器进行了删除操作, 容器并不会自动归还被删除元素相应的内存。

// CPP program to demonstrate working of array
#include <algorithm>
#include <array>
#include <iostream>
#include <iterator>
#include <string>
using namespace std;

int main() 

	// construction uses aggregate initialization
	// double-braces required
	array<int, 5> ar13, 4, 5, 1, 2;
	array<int, 5> ar2 = 1, 2, 3, 4, 5;
	array<string, 2> ar3 = string("a"), "b";

	cout << "Sizes of arrays are" << endl;
	cout << ar1.size() << endl;
	cout << ar2.size() << endl;
	cout << ar3.size() << endl;

	cout << "\\nInitial ar1 : ";
	for (auto i : ar1)
		cout << i << ' ';

	// container operations are supported
	sort(ar1.begin(), ar1.end());

	cout << "\\nsorted ar1 : ";
	for (auto i : ar1)
		cout << i << ' ';

	// Filling ar2 with 10
	ar2.fill(10);

	cout << "\\nFilled ar2 : ";
	for (auto i : ar2)
		cout << i << ' ';


	// ranged for loop is supported
	cout << "\\nar3 : ";
	for (auto &s : ar3)
		cout << s << ' ';

	return 0;

输出:

Sizes of arrays are
5
5
2

Initial ar1 : 3 4 5 1 2 
sorted ar1 : 1 2 3 4 5 
Filled ar2 : 10 10 10 10 10 
ar3 : a b

以上是关于c++新特性11 stdarray的主要内容,如果未能解决你的问题,请参考以下文章

C++ 11 新特性

C++:C++11新特性超详细版

C++ 11 新特性之正则表达式

C++11新特性:1—— C++ 11是什么,C++ 11标准的由来

C++开发者都应该使用的10个C++11特性

c++新特性11 (10)shared_ptr一”概述“