【总结】OJ练习,进行的一些编程语言方面总结

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的初始化用范围构造函数,参数为已定义的数组名及数组名+长度

3.有符号数和无符号数进行运算时,有符号数隐式转换为无符号数。如 int 转换为 unsigned int。

4.multiset的插入是insert操作,删除是erase操作,遍历和取值是迭代器、没有下标操作符[]。

原文地址:https://www.cnblogs.com/buxizhizhou/p/4687907.html