c++新特性11 (5) 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> ar1{
    
    {
    
    3, 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

猜你喜欢

转载自blog.csdn.net/thefist11cc/article/details/124744405