说明:以下代码源自vs2019
1. 本质是数组template2. 一些接口//模板, class array { .... _Ty _Elems[_Size]; //本质是数组,数组大小固定为Size; };
(a) void fill(const _Ty& _Value);
fill_n(_Elems, _Size, _Value);//将数组中所有元素值均用_Value代替;
(b) void swap(array& _Other);
arrayarr = {"I","Love","Liu","xiao","Li"}; array arr1 = {"12","23","34"}; arr1.swap(arr); //要求arr1和arr的大小相等,否则语法错; 即size=5一样,值可以不一样; for (size_t i = 0; i < arr.size(); i++) { cout << arr[i].c_str() << endl; //12 23 34 }
(c) _Ty* _Unchecked_begin();
{
return _Elems; //返回数组名; 也是首元素地址;
}
(d) _Ty* _Unchecked_end() noexcept
{
return _Elems + _Size; //返回数组最后一个位置
}
测试:
arrayarr = {"I","Love","Liu","xiao","Li"}; cout << &arr.at(0) << endl; //006FFE08 cout << arr._Unchecked_begin() << endl;//006FFE08 cout << &arr.at(4) << endl; //0093F854 cout << arr._Unchecked_end() << endl; //0093F870 &arr.at(4)与arr._Unchecked_end()相差12;恰好是字符串"Li"的长度;
(e) size_type size() 和 size_type max_size() ;
{
return _Size; //两者均返回元素个数;
}



