也可以这样 initializer_list<int> lst{1,2,3,4}; 还可以这样 initializer_list<int> lst = {1,2,3,4}; 常见操作: lst.size() lst.begin() lst.end() 三、用途之一 可以更方便的给vector、 string类型赋初始化值。 //c++98vector<int>v; v.push_back(1); v.push_back(2); v.push_back(3...
std::initializer_list<std::pair<conststd::string,int> > ={ {"Riti",2}, {"Jack",4} }; #include <iostream>#include<vector>#includeclassFooMap { std::map<int,int>content_;usingpair_t = std::map<int,int>::value_type;//重新命名类型 typedefpublic: FooMap(std::initializer_list<pair...
intiCount(initializer_list<int>il) {intcount =0;//遍历il上的每一个元素for(auto val : il) { count+=val; }returncount; }intmain(){//使用列表初始化的方式构建 initializer list<int>对象//然后把它作为实参传递给函数iCountcout <<"1,6,9的和是:"<< iCount({1,6,9}) <<endl; cout<<"...
void func(std::initializer_list<int> l) { for (auto it = l.begin(); it != l.end(); ++it) { std::cout << *it << std::endl; } } int main(void) { func({}); // 一个空集合 func({ 1, 2, 3 }); // 传递 { 1, 2, 3 } return 0; } 如上述所示,在任何需要的时候...
initializer_list表示某种特定类型的值的数组,类似于vector,它是一种模板类型,使用的时候需要说明所含元素的类型。 voidtest(initializer_list<string>il){}intmain(){test({"0","HELLO"});test({"here","HELLO","111"});} 我们注意到,initilizer_list在使用的过程中,它的参数类型得是一样的(当然,后面会...
int main(void) { DealWithAll({1,2,3,4,5,6,7,8,9});//you can call DealWithAll like this. } PS: 呵呵,写来写去,发现 C++0x 反而越来越不像 C 了,嗯,也确实不需要太像 C ,C++ 就是 C++ ,希望 C++0x 能给 C++ 带来新的生命力。
std::vector<int> vec; vec.push_back(1); vec.push_back(3); vec.push_back(3); vec.push_back(2); 1. 2. 3. 4. 5. 有了initializer_list后,就可以直接像初始化数组一样: class Test { private: static std::map<string, string> const nameToBirthday = { ...
大家看,它的类型是一个叫做initializer_list<int>的东西。 那为什么这个东西可以赋值给vector呢? 🆗,大家看红色圈出来的部分,C++11给STL中的这些容器增加了这样一个构造函数。 支持用initializer_list类型的对象去构造vector这些容器。 所以正常使用这个构造应该是这样写: ...
花括号里面的常量数组,C++可以将其识别成一个类型 initializer_list, initializer_list这个类带有模板参数,因为传过来的int数据,所以为 initializer_list 类中存在两个指针 size作为两个指针相减 begin指向开始的位置,end 指向结束位置的下一个 对数据不能修改,说明指向的内容在常量区 任意的常量数组 都可以赋值给 ini...
要在initializer_list中存储的元素数据类型。 注解 使用大括号内的初始值设定项列表可构造initializer_list。 C++复制 initializer_list<int> i1{1,2,3,4}; 每当函数签名需要initializer_list时,编译器将具有同类元素的大括号内的初始值设定项列表转换为initializer_list。 有关使用initializer_list的详细信息,请参阅...