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

网站建设和建议/网站建设平台有哪些

网站建设和建议,网站建设平台有哪些,网站备案查询怎么查,机械加工小作坊如何接单文章目录 1. std::size1.1 功能概述1.2 具体用法1.3 示例代码1.4 代码解释 2. std::empty2.1 功能概述2.2 示例代码2.3 代码解释 3. std::data3.1 功能概述3.2 示例代码3.3 代码解释 4. 使用场景5. 注意事项 在 C17 里,std::size、std::empty 和 std::data 作为非成…

image.png

文章目录

    • 1. std::size
      • 1.1 功能概述
      • 1.2 具体用法
      • 1.3 示例代码
      • 1.4 代码解释
    • 2. std::empty
      • 2.1 功能概述
      • 2.2 示例代码
      • 2.3 代码解释
    • 3. std::data
      • 3.1 功能概述
      • 3.2 示例代码
      • 3.3 代码解释
    • 4. 使用场景
    • 5. 注意事项

在 C++17 里,std::sizestd::emptystd::data 作为非成员函数被引入,其目的是为容器和数组提供统一的访问接口。这样做能够简化代码编写过程,避免直接调用容器的成员函数,并且可以支持更多类型的容器和数组。下面对这三个函数进行详细介绍。

1. std::size

1.1 功能概述

std::size 是一个非成员函数,主要用于获取容器或数组的大小。它能以统一的方式处理不同类型的容器和数组,根据操作对象的不同采用不同的实现策略。

1.2 具体用法

  • 对于容器类型:像 std::vectorstd::map 这类标准容器,std::size 会调用容器自身的 size() 成员函数来获取容器中元素的数量。
  • 对于数组std::size 会直接返回数组的大小,也就是数组中元素的数量。

1.3 示例代码

#include <vector>
#include <iostream>int main() {// 定义一个包含 3 个元素的 vector 容器std::vector<int> vec = {1, 2, 3};// 定义一个包含 3 个元素的数组int arr[] = {4, 5, 6};// 输出 vector 容器的大小std::cout << "Vector size: " << std::size(vec) << std::endl; // 输出数组的大小std::cout << "Array size: " << std::size(arr) << std::endl;  return 0;
}

1.4 代码解释

在上述代码中,std::size(vec) 调用了 std::vectorsize() 成员函数,输出结果为 3;std::size(arr) 直接计算数组 arr 的元素数量,同样输出 3。

2. std::empty

2.1 功能概述

std::empty 函数用于检查容器或数组是否为空。它会返回一个布尔值,若容器或数组为空则返回 true,否则返回 false

2.2 示例代码

#include <vector>
#include <iostream>int main() {// 定义一个空的 vector 容器std::vector<int> vec;// 定义一个包含 3 个元素的数组int arr[] = {1, 2, 3};// 以文本形式输出布尔值std::cout << std::boolalpha;// 检查 vector 容器是否为空std::cout << "Vector is empty: " << std::empty(vec) << std::endl; // 检查数组是否为空std::cout << "Array is empty: " << std::empty(arr) << std::endl;  return 0;
}

2.3 代码解释

代码中,std::empty(vec) 由于 vec 为空,所以返回 truestd::empty(arr) 因为 arr 包含元素,所以返回 falsestd::boolalpha 用于以文本形式输出布尔值。

3. std::data

3.1 功能概述

std::data 函数用于获取容器或数组的底层数据指针。对于容器,它会返回容器的 data() 成员函数的结果;对于数组,它会返回数组的首地址。

3.2 示例代码

#include <vector>
#include <iostream>int main() {// 定义一个包含 3 个元素的 vector 容器std::vector<int> vec = {1, 2, 3};// 定义一个包含 3 个元素的数组int arr[] = {4, 5, 6};// 输出 vector 容器底层数据的第一个元素std::cout << "Vector data: " << *std::data(vec) << std::endl; // 输出数组底层数据的第一个元素std::cout << "Array data: " << *std::data(arr) << std::endl;  return 0;
}

3.3 代码解释

std::data(vec) 返回 std::vector 底层数据的指针,*std::data(vec) 解引用该指针得到第一个元素的值 1;std::data(arr) 返回数组 arr 的首地址,*std::data(arr) 得到数组的第一个元素 4。

4. 使用场景

这些非成员函数的引入让代码更加通用和简洁。例如,std::sizestd::empty 可以同时用于容器和数组,而无需区分具体类型。此外,只要自定义类型提供了相应的成员函数(如 size()empty()data()),这些非成员函数同样可以支持自定义类型。

5. 注意事项

  • 返回类型std::size 的返回类型为 std::size_tstd::empty 的返回类型为 bool
  • 数据有效性std::data 返回的是指向底层数据的指针,使用时需要确保数据的有效性,避免出现悬空指针等问题。

通过这些非成员函数,C++17 提供了一种更统一的方式来处理容器和数组,进一步增强了语言的表达能力和灵活性。

http://www.whsansanxincailiao.cn/news/31952946.html

相关文章:

  • 网站图片翻页怎么做/网站设计制作的服务怎么样
  • 广东东莞疫情最新情况 最新消息/seo黑帽技术有哪些
  • 外贸网站推广方法/北京seo优化排名
  • 做环卫车怎么做网站/佛山做网站建设
  • 手机访问网站页面丢失/网站推广与优化方案
  • 中国林业建设工程网站/宁波seo关键词优化教程
  • 网站仿站建设/seo官网优化怎么做
  • 做网站一定需要服务器吗/seo站长工具下载
  • 网站 建设需求/中国关键词网站
  • 院校建设网站群的原因/新站seo快速排名 排名
  • 网站建设 qq业务网制作/网页设计基础
  • 帮人家做网站难吗/seo在线短视频发布页
  • wordpress xampp建站/推广哪个app最挣钱
  • wordpress更换回编辑器/上海网站seo策划
  • 百度怎么验证网站/宁波seo哪家好快速推广
  • wordpress建立好的网站/搜狗搜索推广
  • 怎样建立一个网站步骤/销售方案怎么做
  • 无锡企业网站/百度网址大全怎么设为主页
  • 2019做网站的出路/营销型企业网站
  • 商城app定制开发/专业seo培训
  • 武汉手机网站建设动态/网站搜索优化公司
  • 招聘网站哪个靠谱/常州百度推广代理公司
  • 网站如何做响应式布局/seo搜索引擎优化排名哪家更专业
  • 长沙做网站改版费用/百度人工客服电话怎么转人工
  • css用代码做网站/网站优化价格
  • 文化旅游做的好的网站/chatgpt网站
  • 那些彩票广告网站怎么做的/公司的网站
  • 无锡做网站baidu/新闻热点事件2021(最新)
  • 客服在家做网站/自己怎么优化网站
  • 那个网站有免费模板/兰州正规seo整站优化