网站关键词库如何做,做公司+网站建设价格低,设置网站人数,旅游网站这么做1. {} 初始化
C98 中#xff0c;允许使用 {} 对数组进行初始化。 int arr[3] { 0, 1, 2 };C11 扩大了 {} 初始化 的使用范围#xff0c;使其可用于所有内置类型和自定义类型。
struct Date
{int _year;int _month;int _day;Date(int year, int month, int day):_year(year…1. {} 初始化
C98 中允许使用 {} 对数组进行初始化。 int arr[3] { 0, 1, 2 };C11 扩大了 {} 初始化 的使用范围使其可用于所有内置类型和自定义类型。
struct Date
{int _year;int _month;int _day;Date(int year, int month, int day):_year(year),_month(month),_day(day){}
};int main()
{// 两种常见的用法Date d1{2024, 6, 8};Date d2 {2024, 6, 8};// 列表初始化可用于 new 表达式int* pa new int[4]{ 0 };return 0;
}2. std::initializer_list int main()
{auto arr { 1, 2, 3 };cout typeid(arr).name() endl; // typeid().name() 用于查看对象的数据类型return 0;
}std::initializer_list 是 C11 引入的一个模板类型用于处理一组同类型的初始值。
它主要用于构造函数和函数参数列表中允许使用 {} 初始化或传递一系列相同类型的值。 std::initializer_list 作为构造函数的参数C11 对不少容器增加了 initializer_list 作为参数的构造函数 std::initializer_list 作为 operator() 的函数参数 常见的使用场景
int main()
{mapstring, string dict{ {iterator, 迭代器}, {singularity, 奇异}, {sort, 排序} };vectorint v { 1, 2, 3, 4, 5 };return 0;
}3. pair 的补充知识 namespace MyTest
{templateclass T1, class T2struct pair{pair(const T1 first, const T2 second):_first(first),_second(second){}templateclass K, class Vpair(const pairK, V kv):_first(kv._first),_second(kv._second){}T1 _first;T2 _second;};
}