1.STL vector只有四个构造函数
default (1) explicit vector (const allocator_type& alloc = allocator_type()); fill (2) explicit vector (size_type n, const value_type& val = value_type(), const allocator_type& alloc = allocator_type()); range (3) template <class InputIterator> vector (InputIterator first, InputIterator last, const allocator_type& alloc = allocator_type()); copy (4) vector (const vector& x);
第一个是默认构造函数,参数为内存分配器。
第二个是fill类型构造函数,参数为n个vector元素类型的val值。
第三个是范围的构造函数,参数为[first,last)的左闭右开范围区间。
第四个是复制构造函数,参数当然为const vector &了。
2.STL二维数组的构建。如 vector<vector<int> > vec;
应该只有如下方法:
vector a1; a1.push_back(1); a1.push_back(2); a1.push_back(3); vector a2; a2.push_back(2); a2.push_back(3); a2.push_back(4); vec.push_back(a1); vec.push_back(a2);
所以,初始化一个二维数组是很麻烦的。好像用vector的话,没有更简便的方法了。最多就是,把a1和a2的初始化用范围构造函数,参数为已定义的数组名及数组名+长度
时间: 2024-11-15 00:39:11