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

国外手机网站国内做网站建设好的

国外手机网站,国内做网站建设好的,从零开始学习网站开发计划,建设银行怀柔支行营业部网站ranges是C20中新增加的头文件#xff0c;提供了一组与范围(ranges)相关的功能#xff0c;此头文件是ranges库的一部分。包括#xff1a; 1.concepts: (1).std::ranges::range:指定类型为range#xff0c;即它提供开始迭代器和结束标记(it provides a begin iterato…      ranges是C20中新增加的头文件提供了一组与范围(ranges)相关的功能此头文件是ranges库的一部分。包括 1.concepts: (1).std::ranges::range:指定类型为range即它提供开始迭代器和结束标记(it provides a begin iterator and an end sentinel)。 (2).std::ranges::sized_range:指定range在恒定时间(constant time)内知道其大小。 (3).std::ranges::contiguous_range指定range的迭代器类型满足std::contiguous_iterator。 namespace {struct SimpleRange { // a minimum rangeint* begin();int* end(); };struct NotRange { // not a range: begin does not return an input_or_output_iteratorvoid* begin();int* end(); };} // namespaceint test_ranges_concepts() { #ifdef _MSC_VERstatic_assert(std::ranges::rangeSimpleRange);static_assert(!std::ranges::rangeNotRange); #endifstatic_assert(std::ranges::sized_rangestd::listint and not std::ranges::sized_rangestd::forward_listint);static_assert(std::ranges::contiguous_rangeconst std::vectorint and not std::ranges::contiguous_rangestd::listint);return 0; } 2.classes: std::views是std::ranges::views的别名 (1).std::ranges::subrange将迭代器-标记对(iterator-sentinel pair)组合成一个视图(view)。 (2).std::ranges::views::empty、std::ranges::empty_view没有任何元素的空视图。 (3).std::ranges::views::single、std::ranges::single_view包含指定值的单个元素的视图。 (4).std::ranges::views::iota、std::ranges::iota_view由重复增加初始值生成的序列构成的视图。 (5).std::ranges::views::istream、std::ranges::basic_istream_view在相关输入流上连续应用运算符所获得的元素组成的视图。 (6).std::ranges::views::all、std::ranges::views::all_t包含range的所有元素的视图。 (7).std::ranges::ref_view:其它range的元素的视图。 (8).std::ranges::views::take、std::ranges::take_view由另一个视图的前N​​个元素组成的视图。 (9).std::ranges::owning_view对某一range具有唯一所有权的视图。 (10).std::ranges::views::drop、std::ranges::drop_view由另一个视图的元素组成的视图跳过前N个元素。 (11).std::ranges::views::join、std::ranges::join_view由展平(flattening)ranges视图获得的序列组成的视图。 (12).std::ranges::views::counted:从迭代器和计数创建一个子range。 (13).std::ranges::views::elements、std::ranges::elements_view采用由类似元组的值和数字N组成的视图并生成每个元组的第N个元素的视图。 int test_ranges_classes() {// std::ranges::views std::views// std::ranges::subrangeconst std::multimapint, char mm{ {1, a}, {2, a}, {1, c}, {3, d}, {1, e}, {1, f} };auto [first, last] mm.equal_range(1);for (const auto [_, v] : std::ranges::subrange(first, last))std::cout v ,; // a,c,e,f,std::cout std::endl;// std::ranges::empty_viewstd::ranges::empty_viewlong e;static_assert(std::ranges::empty(e));static_assert(0 e.size());static_assert(nullptr e.data());static_assert(nullptr e.begin());static_assert(nullptr e.end());// std::ranges::single_viewconstexpr std::ranges::single_view sv1{ std::numbers::pi };static_assert(sv1);static_assert(not sv1.empty());std::cout data: *sv1.data() ;begin: *sv1.begin() ;size: sv1.size() ;distance: std::distance(sv1.begin(), sv1.end()) std::endl; // data:3.14159;begin:3.14159;size:1;distance:1std::ranges::single_viewstd::tupleint, double, std::string sv2{ {1, std::numbers::sqrt2, ^-^} };std::cout value: std::get0(sv2[0]) , std::get1(sv2[0]) , std::get2(sv2[0]) std::endl; // value:1,1.41421,^-^// std::ranges::views::iota/std::ranges::iota_viewfor (auto i : std::ranges::iota_view{ 1, 10 })std::cout i ; // 1 2 3 4 5 6 7 8 9std::cout std::endl;for (auto i : std::ranges::views::iota(1, 10))std::cout i ; // 1 2 3 4 5 6 7 8 9std::cout std::endl;// std::ranges::views::istreamauto words std::istringstream{ today is yesterdays tomorrow };for (const auto s : std::views::istreamstd::string(words))std::cout std::quoted(s, /) ; // /today/ /is/ /yesterdays/ /tomorrow/std::cout \n;// std::views::allconst std::vectorint vec{ 0, 1, 2, 3, 4, 5 };for (auto n : std::views::all(vec))std::cout n ; // 0 1 2 3 4 5std::cout std::endl;// std::ranges::take_view,std::ranges::ref_viewconst std::string str{ Messy_Test };const std::ranges::take_view tv{ str, 5 };std::cout second element: *(tv.data()1) ,size: tv.size() std::endl; // second element:e,size:5const std::ranges::ref_view rv{ tv };std::cout empty: rv.empty() ,size: rv.size() ,begin: *rv.begin() ,end: *(rv.end() - 1) ,data: rv.data() std::endl; // empty:0,size:5,begin:M,end:y,data:Messy_Testfor (const auto c : rv)std::cout c; // Messystd::cout std::endl;// std::ranges::owning_viewusing namespace std::literals;std::ranges::owning_view ov{ Messy_Tests }; // ov{std::string{Messy_Test}}assert(ov.empty() false ov.size() 10 ov.front() M ov.back() t);// std::ranges::drop_view,std::views::dropconst auto nums { 1, 2, 3, 4, 5, 6, 7 };for (auto i : std::ranges::drop_view{ nums, 2 })std::cout i ; // 3 4 5 6 7std::cout std::endl;for (auto i : nums | std::views::drop(3))std::cout i ; // 4 5 6 7std::cout std::endl;;// std::ranges::join_viewconst std::vectorstd::vectorint v{ {1, 2}, {3, 4, 5}, {6}, {7, 8, 9} };auto jv std::ranges::join_view(v); #ifdef __linux__for (int const e : jv)std::cout e ;std::cout std::endl; #endif// std::views::countedconst int a[]{ 1, 2, 3, 4, 5, 6, 7 };for (int i : std::views::counted(a, 3))std::cout i ; // 1 2 3std::cout std::endl;// std::views::elementsconst std::vectorstd::tupleint, char vt {{1, A},{2, B},{3, C},{4, D},{5, E}};for (int const e : std::views::elements0(vt))std::cout e ; // 1 2 3 4 5std::cout std::endl;for (char const e : vt | std::views::elements1)std::cout e ; // A B C D Estd::cout std::endl;return 0; } 执行结果如下图所示 3.customization point objects: (1).std::ranges::begin、std::ranges::cbegin:返回指向range开头的迭代器。 (2).std::ranges::end、std::ranges::cend:返回指示range结束的哨兵(sentinel)。 (3).std::ranges::rbegin、std::ranges::crbegin:返回range的反向迭代器。 (4).std::ranges::rend、std::ranges::crend:返回range的反向结束迭代器。 (5).std::ranges::size:返回等于range大小的整数。 (6).std::ranges::ssize:返回等于range大小的有符号整数。 (7).std::ranges::empty:检查range是否为空。 (8).std::ranges::data、std::ranges::cdata获取指向连续range开头的指针。 int test_ranges_customization_point_objects() {// std::ranges::beginstd::vector v{ 3, 1, 4, 9, 6};auto vi std::ranges::begin(v);std::cout *vi std::endl; // 3*(vi) 66;std::cout v[1] std::endl; // 66// std::ranges::endvi std::ranges::end(v);std::cout *(vi-1) std::endl; // 6*(--vi) 88;std::cout v[4] std::endl; // 88for (auto vi std::ranges::cbegin(v); vi ! std::ranges::end(v); vi)std::cout *vi ; // 3 66 4 9 88std::cout std::endl;// std::ranges::rbeginauto vj std::ranges::rbegin(v);std::cout *vj std::endl; // 88*(vj) 33;std::cout v[3] std::endl;// std::ranges::rendvj std::ranges::rend(v);std::cout *(vj-1) std::endl; // 3*(--vj) 99;std::cout v[0] std::endl; // 99// std::ranges::sizestd::cout size: std::ranges::size(v) ,ssize: std::ranges::ssize(v) std::endl; // size:5,ssize:5// std::ranges::emptystd::cout v is empty: std::ranges::empty(v) std::endl; // v is empty:0std::mapint, std::string m{};std::cout m is empty: std::ranges::empty(m) std::endl; // m is empty:1std::string str{ hello world! };std::ranges::data(str)[0] H;std::cout std::ranges::data(str) std::endl; // Hello world!return 0; } 执行结果如下图所示 GitHubhttps://github.com/fengbingchun/Messy_Test
http://www.hkea.cn/news/14464493/

相关文章:

  • 做餐饮类网站用哪个程序网络推广有哪些方法
  • 乐清手机网站广告发光字制作培训班
  • 做营销型网站公司电影网站内页
  • 网站开发与系统开发室内设计师工作室
  • 中国能建设计公司网站专门代写平台
  • 常用的网站开发语言平面设计和网页设计哪个好
  • 施工程找工程做哪个网站好深圳网站制作建设服务公司
  • 外贸网站模板 外贸网站制作公共资源交易中心有实权吗
  • 做旅游网站用什么颜色永兴网站开发
  • 关于网站建设外文文献柘城网站建设
  • 中国站长网入口做一套网站开发多少钱
  • 安溪网站建设长春市长春网站建设
  • 柳州网站建设数公式大全学历提升销售好做吗
  • 宁波网站建设开发服务wordpress插件pdf
  • 公司网站建设的作用与意义自动化设备东莞网站建设
  • asp做静态网站芜湖网站开发公司
  • 哪个商城网站建设好建设asp网站视频教程
  • 深圳便宜的网站建设百度官网平台
  • 重庆北碚网站建设深圳做app网站公司
  • 企业数据查询网站海曙网站制作
  • 抖音小程序在哪里杭州新站整站seo
  • 做图表好用网站或软件google和百度等相关网站的广告词
  • 网站都要交域名费么公司网址一般是什么
  • 用asp.net做购物网站手机系统网站
  • wordpress用网站测速廊坊seo霸屏
  • 吉林省软环境建设网站三端互通传奇发布网
  • 网站推广存在的问题温州网站的优化
  • 网站keyword如何排列网站建设有什么工作
  • 微信公众号 手机网站七初SEO网站建设
  • 食品行业网站建设网站策划技巧