C++之vector
一、什么是vector?
向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。
二、容器特性
1.顺序序列
顺序容器中的元素按照严格的线性顺序排序。可以通过元素在序列中的位置访问对应的元素。
2.动态数组
支持对序列中的任意元素进行快速直接访问,甚至可以通过指针算述进行该操作。操供了在序列末尾相对快速地添加/删除元素的操作。
3.能够感知内存分配器的(Allocator-aware)
容器使用一个内存分配器对象来动态地处理它的存储需求。
参考:
C++ vector 容器浅析
实例:
vector<int> twoSum(vector<int>& nums, int target) # 返回值类型为vector<int> 函数参数有vector<int>类型和int
vector<pair<int,int> > nums1; # 定义一个新容器
nums1.push_back(make_pair(nums[i],i)); # 将值和索引对添加进容器
sort(nums1.begin(),nums1.end()); # sort 从小到大排序
unordered_map 与 map
unordered_map和map类似,都是存储的key-value的值,可以通过key快速索引到value。不同的是unordered_map不会根据key的大小进行排序,
map.count 和map.find 的用法区别
使用count,返回的是被查找元素的个数。如果有,返回1;否则,返回0。注意,map中不存在相同元素,所以返回值只能是1或0。
使用find,返回的是被查找元素的位置,没有则返回map.end()。
问号运算符
nums1[i].first +nums1[j].first < target ? ++i : --j; # 问号运算 (表达式1)?(表达式2):(表达式3) 如果表达式1成立则执行表达式2,否则执行表达式3
网友评论