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

深圳网站建设ue杭州seo首页优化软件

深圳网站建设ue,杭州seo首页优化软件,普达建站快车,网站主题制作本专栏目的 更新C/C的基础语法,包括C的一些新特性 前言 initializer_list表达式、tuple元组、pair对组再C日常还是比较常用的,尤其是对组在刷算法还是挺好用的,这里做一个简介;这三个语法结合C17的结构化绑定会更好用&#xff…

本专栏目的

  • 更新C/C++的基础语法,包括C++的一些新特性

前言

  • initializer_list表达式、tuple元组、pair对组再C++日常还是比较常用的,尤其是对组在刷算法还是挺好用的,这里做一个简介;
  • 这三个语法结合C++17的结构化绑定会更好用,结构化绑定后面会更新;
  • C语言后面也会继续更新知识点,如内联汇编;
  • 欢迎收藏 + 关注,本人将会持续更新。

文章目录

    • std::initializer_list
      • 使用步骤
    • std::tuple
      • 创建
      • 获取元素值
      • 作为函数返回值
    • std::pair

std::initializer_list

为了编写能够处理不同数量实参,但是类型相同,C++11新标准提供了std::initializer_list的方法,它提供了一种方便的方式来初始化容器或执行其他形式的初始化。std::initializer_list 主要用于构造函数和其他函数的参数列表中,允许使用大括号 {} 包围的初始化列表来传递多个元素。

  • 普通函数使用
void showMsg(const std::initializer_list<std::string>& list)
{for (auto& n : list){cout << n << " ";}cout << endl;
}
showMsg({ "hello","world","嘿嘿"});
  • 构造函数使用
template<typename T,size_t _size>
class Array
{
public:Array() {}Array(const std::initializer_list<T>& list) {size_t i = 0;for (auto& v : list)   //必须使用这个{_arr[i++] = v;}}constexpr size_t size()const { return _size; }T& operator[](int index){return _arr[index];}T _arr[_size]{ T() };
};Array<int, 10> arr = { 1,2,3,4,5,6 };
for (int i = 0; i < arr.size(); i++)
{cout << arr[i] << " ";
}

注意: 这个表达式只允许读,不允许修改里面元素

相对于数组:语法简单,可以支持{}初始化,也更安全了。

使用步骤

1、用花括号初始化器列表列表初始化一个对象,其中对应构造函数接受一个std::initializer_list 参数
2、以花括号初始化器列表为赋值的右运算数,或函数调用参数,而对应的赋值运算符/函数接受 std::initializer_list 参数
3、绑定花括号初始化器列表到 auto ,包括在范围 for 循环中

std::tuple

😋 简介:元组,可以存储多个元素,包括不同类型的元素;

创建

void create()
{//1.模板std::tuple<int, const char*, const char*> tup(18, "wy", "wqy");//2.构造函数(推荐)auto m_tup = std::make_tuple(18, "wy love", "wqy");//3.右值引用auto m_right = std::forward_as_tuple(18, "wy love", "wqy");
}

获取元素值

🔐 可以通过std::get来获取

void print()
{auto m_tup = std::make_tuple(18, "wy", "love", "wqy");//1.get 获取,可以改变值std::get<0>(m_tup) = 19;std::cout << std::get<0>(m_tup) << " " << std::get<1>(m_tup) << " " << std::get<2>(m_tup) << " " << std::get<3>(m_tup) << std::endl;//2.tie 获取int age;const char* name;const char* word;const char* she;std::tie(age, name, word, she) = m_tup;std::cout << age << " " << name << " " << word << " " << she << std::endl;std::string na;std::tie(std::ignore, std::ignore, na, std::ignore) = m_tup;     //得需要完整的参数个数//3.tie 还可以创建一个tuple ,但是必须为左值auto m_tp = std::tie(word, she);//4. std::tie_cat 连接auto new_tup = std::tuple_cat(m_tup, m_tp);//输出 get  /  tiestd::cout << std::get<0>(new_tup) << " " << std::get<5>(new_tup) << std::endl;
}

作为函数返回值

#include<iostream>
#include<tuple>auto show()
{return std::make_tuple(1, 2, 3);
}int main()
{print();//作用:可以做函数多个参数返回值int x, y, z;auto m_tup = show();std::tie(x, y, z) = show();std::cout << x << " " << y << " " << z << std::endl;return 0;
}

std::pair

简介: 这个用处还是很大的,可以存储两个元素,类似于KV存储。

📖 常用操作

  • 构建对组
  • 访问对组元素,第一个.first,第二个.second
  • 常用操作代码:
#include<iostream>void createText();//用处
auto _with()
{return std::make_pair(1, 2);
}int main()
{createText();auto text = _with();std::cout << text.first << " " << text.second << std::endl;return 0;
}void createText()
{//pair 对组 //first  second//1. 模板构造std::pair<std::string, std::string> m_pair("wy", "wqy");//2. make_pairauto m_p = std::make_pair("wqy", "wy");输出std::cout << m_pair.first << " " << m_pair.second << std::endl;   std::cout << m_p.first << " " << m_p.second << std::endl;
}

注意,对 对组 元素进行排序,则默认按照第一个元素进行排序,代码如下:

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;int main()
{std::vector<std::pair<int, std::string>> kv{ {10, "y"},{19, "x"},{18, "z"},{1, "b"},{22,"k"} };sort(kv.begin(), kv.end());for (auto& it : kv) {std::cout << it.first << " " << it.second << std::endl;}return 0;
}

结果

在这里插入图片描述

如果想要按照第二个排序,则需要需要用介词函数,什么是介词函数??这个等到STL的时候在讲解吧,代码如下:

#include <iostream>
#include <algorithm>
#include <vector>int main()
{std::vector<std::pair<int, std::string>> kv{ {10, "y"},{19, "x"},{18, "z"},{1, "b"},{22,"k"} };sort(kv.begin(), kv.end(), [=](const std::pair<int, std::string>& a, const std::pair<int, std::string>& b) {return a.second < b.second;});for (auto& it : kv) {std::cout << it.first << " " << it.second << std::endl;}return 0;
}

结果:

在这里插入图片描述

http://www.qdjiajiao.com/news/5786.html

相关文章:

  • 如何创建微信公众号要钱吗论坛如何做seo
  • 做dota2菠菜网站长春网站建设定制
  • 网络营销服务的内容天天seo站长工具
  • 图案设计网站有哪些百度怎么发布短视频
  • 武汉吧辽宁网站seo
  • 网页设计基础实训目的百度移动seo首选帝搜软件
  • 网站开发软件d网站排名优化公司哪家好
  • 做神马网站快速seo是什么意思蜘蛛屯
  • 慈溪建设集团网站社群营销的十大步骤
  • 有没有做那个的视频网站吗微信公众号推广网站
  • 乐山市城乡规划建设局网站今天有哪些新闻
  • app策划书模板黑帽seo联系方式
  • 电子商务基础网站建设广东seo价格是多少钱
  • 教务管理系统平台东莞seo建站排名
  • 防腐木做水车网站关键词在线试听
  • 免费空间网站怎么做的发外链的网址
  • 网站建设具体工作seo云优化公司
  • 郑州正规网站设计价格世界杯大数据
  • 咸阳网站开发联系方式小说百度搜索风云榜
  • 珠海做企业网站多少钱电商网站定制开发
  • 石河子做网站公司什么是营销型网站?
  • wordpress主题定制器seo如何优化网站推广
  • 深圳外贸公司排名cpu优化软件
  • 安徽网站建设案例永久免费客服系统软件
  • 佛山市官网网站建设哪家好深圳网站关键词
  • 网站续费服务内容未来网络营销的发展趋势
  • 做鲜花批发在哪个网站好十大广告公司排名
  • b2b 网站制作张家界百度seo
  • 湛江手机网站建设友链交换平台源码
  • 网站建设目录结构设计网站推广有哪些方式