当前位置: 首页 > news >正文

重庆招标建设信息网站互联网营销推广

重庆招标建设信息网站,互联网营销推广,工信部备案网站打不开,门户网站建设好如何维护定义于头文件 <array> template< class T, std::size_t N > struct array;(C11 起) std::array 是封装固定大小数组的容器。 此容器是一个聚合类型&#xff0c;其语义等同于保有一个 C 风格数组 T[N] 作为其唯一非静态数据成员的结构体。不同于 C 风格数…
定义于头文件 <array>
template<

    class T,
    std::size_t N

> struct array;
(C++11 起)

 std::array 是封装固定大小数组的容器。

此容器是一个聚合类型,其语义等同于保有一个 C 风格数组 T[N] 作为其唯一非静态数据成员的结构体。不同于 C 风格数组,它不会自动退化成 T* 。它能作为聚合类型聚合初始化,只要有至多 N 个能转换成 T 的初始化器: std::array<int, 3> a = {1,2,3}; 。

该结构体结合了 C 风格数组的性能、可访问性与容器的优点,比如可获取大小、支持赋值、随机访问迭代器等。

std::array 满足容器 (Container) 和可逆容器 (ReversibleContainer) 的要求,除了默认构造的 array 是非空的,以及进行交换的复杂度是线性,它满足连续容器 (ContiguousContainer) (C++17 起)的要求并部分满足序列容器 (SequenceContainer) 的要求。

当其长度为零时 arrayN == 0 )有特殊情况。此时, array.begin() == array.end() ,并拥有某个唯一值。在零长 array 上调用 front() 或 back() 是未定义的。

亦可将 array 当做拥有 N 个同类型元素的元组。

迭代器非法化

按照规则,指向 array 的迭代器在 array 的生存期间决不非法化。然而要注意,在 swap 时,迭代器将继续指向同一 array 的元素,并将改变元素的值。

容量

检查容器是否为空

std::array<T,N>::empty

constexpr bool empty() const noexcept;

(C++11 起)
(C++20 前)

[[nodiscard]] constexpr bool empty() const noexcept;

(C++20 起)

 检查容器是否无元素,即是否 begin() == end() 。

参数

(无)

返回值

若容器为空则为 true ,否则为 false

复杂度

常数。

返回容纳的元素数

std::array<T,N>::size

size_type size() const noexcept;

(C++11 起)

返回容器中的元素数,即 std::distance(begin(), end()) 。

参数

(无)

返回值

容器中的元素数量。

复杂度

常数。

 

返回可容纳的最大元素数

std::array<T,N>::max_size

constexpr size_type max_size()  noexcept;

(C++11 起)
(C++14 前)

constexpr size_type max_size() const noexcept;

(C++14 起)

 返回根据系统或库实现限制的容器可保有的元素最大数量,即对于最大容器的 std::distance(begin(), end()) 。

参数

(无)

返回值

元素数量的最大值。

复杂度

常数。

注意

因为每个 std::array<T, N> 都是固定大小容器,故 max_size 返回的值等于 N (亦为 size 所返回的值)

操作

以指定值填充容器

std::array<T,N>::fill

void fill( const T& value );

(C++11 起)
(C++20 前)

constexpr void fill( const T& value );

(C++20 起)

 赋给定值 value 给容器中的所有元素。

参数

value-要赋给元素的值

返回值

(无)

复杂度

与容器大小成线性。

交换内容

std::array<T,N>::swap

void swap( array& other ) noexcept(/* see below */);

(C++11 起)
(C++20 前)

constexpr void swap( array& other ) noexcept(/* see below */);

(C++20 起)

将容器内容与 other 的内容交换。不导致迭代器和引用关联到别的容器。

参数

other-要与之交换内容的 array

返回值

(无)

异常

noexcept 规定:  

noexcept(noexcept(swap(std::declval<T&>(), std::declval<T&>())))

在以上表达式中,按照同 C++17 std::is_nothrow_swappable 特性所用的行为查找标识符 swap

(C++17 前)
noexcept 规定:  

noexcept(std::is_nothrow_swappable_v<T>)

(C++17 起)

对于零长 array ,noexcept 规定:  noexcept

复杂度

与容器大小成线性。

 

调用示例

#include <iostream>
#include <string>
#include <iterator>
#include <algorithm>
#include <functional>
#include <time.h>
#include <array>using namespace std;struct Cell
{int x;int y;Cell() = default;Cell(int a, int b): x(a), y(b) {}Cell &operator +=(const Cell &cell){x += cell.x;y += cell.y;return *this;}Cell &operator +(const Cell &cell){x += cell.x;y += cell.y;return *this;}Cell &operator *(const Cell &cell){x *= cell.x;y *= cell.y;return *this;}Cell &operator ++(){x += 1;y += 1;return *this;}bool operator <(const Cell &cell) const{if (x == cell.x){return y < cell.y;}else{return x < cell.x;}}bool operator >(const Cell &cell) const{if (x == cell.x){return y > cell.y;}else{return x > cell.x;}}bool operator ==(const Cell &cell) const{return x == cell.x && y == cell.y;}
};std::ostream &operator<<(std::ostream &os, const Cell &cell)
{os << "{" << cell.x << "," << cell.y << "}";return os;
}using namespace std;int main()
{std::cout << std::boolalpha;std::mt19937 g{std::random_device{}()};srand((unsigned)time(NULL));auto generate = [](){int n = std::rand() % 10 + 110;Cell cell{n, n};return cell;};//遵循聚合初始化的规则初始化 array (注意默认初始化可以导致非类的 T 的不确定值)std::array<Cell, 6> array1;std::cout << "array1:   ";std::copy(array1.begin(), array1.end(), std::ostream_iterator<Cell>(std::cout, " "));std::cout << std::endl;std::generate(array1.begin(), array1.end(), generate);std::cout << "array1:   ";std::copy(array1.begin(), array1.end(), std::ostream_iterator<Cell>(std::cout, " "));std::cout << std::endl;std::cout << std::endl;//检查容器是否无元素,即是否 begin() == end() 。std::cout << "array1 empty: " << array1.empty() << std::endl;std::array<Cell, 0> array2;std::cout << "array2 empty: " << array2.empty() << std::endl;std::cout << std::endl;//返回容器中的元素数,即 std::distance(begin(), end()) 。std::cout << "array1 contains " << array1.size() << " elements." << std::endl;std::cout << "array2 contains " << array2.size() << " elements." << std::endl;std::cout << std::endl;//返回根据系统或库实现限制的容器可保有的元素最大数量,即对于最大容器的 std::distance(begin(), end()) 。std::cout << std::endl;std::cout << "array1 max_size " << array1.max_size() << std::endl;std::cout << "array2 max_size " << array2.max_size() << std::endl;std::cout << std::endl;//赋给定值 value 给容器中的所有元素。Cell cell = generate();array1.fill(cell);std::cout << "array1.fill( " << cell << " )" << std::endl;std::cout << "array1:   ";std::copy(array1.begin(), array1.end(), std::ostream_iterator<Cell>(std::cout, " "));std::cout << std::endl;std::cout << std::endl;std::array<Cell, 6> array3;std::generate(array3.begin(), array3.end(), generate);std::cout << "swap before:" << std::endl;std::cout << "array1:   ";std::copy(array1.begin(), array1.end(), std::ostream_iterator<Cell>(std::cout, " "));std::cout << std::endl;std::cout << "array3:   ";std::copy(array3.begin(), array3.end(), std::ostream_iterator<Cell>(std::cout, " "));std::cout << std::endl;//将容器内容与 other 的内容交换。不导致迭代器和引用关联到别的容器。array1.swap(array3);std::cout << "swap after:" << std::endl;std::cout << "array1:   ";std::copy(array1.begin(), array1.end(), std::ostream_iterator<Cell>(std::cout, " "));std::cout << std::endl;std::cout << "array3:   ";std::copy(array3.begin(), array3.end(), std::ostream_iterator<Cell>(std::cout, " "));std::cout << std::endl;std::cout << std::endl;return 0;
}

输出

 

http://www.mmbaike.com/news/85873.html

相关文章:

  • 广告传媒网站模板长春seo优化
  • 手机自助建站平台线上推广有哪些
  • 佛山禅城百度网站优化软件
  • 做平台网站需要多少钱想要推广网页正式版
  • 网站空间有什么用网络推广方法有哪几种
  • dw做网站基础广告点击一次多少钱
  • 免费域名解析网站建设网络营销的特点是什么?
  • 六灶网站建设做网站用什么编程软件
  • 做网站几个步骤谷歌sem服务商
  • 设计专业知名企业网站友情链接又称
  • 动态域名做网站班级优化大师官方网站
  • android 解析 wordpress石家庄seo关键词
  • 进出长春最新规定济南新站seo外包
  • 网站建设黄页吉林网络推广公司
  • 深圳网站建设易佰讯搜索引擎优化的基本原理
  • 学校网站搭建百度seo培训班
  • 自己怎么做点击量好的网站今天中国新闻
  • 攀枝花网站建设兼职seo视频教程
  • 做文艺文创产品的网站网络建站公司
  • jquery 网站框架抖音seo软件工具
  • 公司网站推广计划书怎么做怎样在百度上推广
  • 青岛商城网站建设百度 营销推广费用
  • 台州高端网站建设郑州网站设计有哪些
  • wordpress+手工网站如何做网站网页
  • wordpress适合建什么网站吗公司百度官网优化
  • 网站做三个月收录100深圳网站制作哪家好
  • 网站制作行业越来越难做安卓手机优化
  • 广东个人 网站备案获客
  • 网站策划过程百度平台客服人工电话
  • 国外社交网站设计欣赏中央人民政府