++, -- 返回前驱和后继,时间复杂度 O(logn)set/multisetinsert()插入一个数find()查找一个数count()返回某一个数的个数erase()(1)输入是一个数x,删除所有xO(k + logn)(2)输入一个迭代器,删除这个迭代器lower_bound()/upper_bound()lower_bound(x)返回大于等于x的最小的数的迭代器upper_bound(x)返...
check_name.erase(name.top()); name.pop(); }if(!EFs) { alone =false; tempO =0; } }elseif(ch =='F') { EFs +=1;stringv, x, y;cin>> v >> x >> y;if(check_name.find(v) != check_name.end()) flag =false;else{ check_name.insert(v); name.push(v);if(x[0] >='...
erase(iter++); // 等价于 auto t = iter; iter = iter + 1; b.erase(t); } else{ iter++; } } 第三部分:数组、指针 & 引用 1. 指针和引用的区别? 相同点: 1). 都是地址的概念; 2). 都是“指向”一块内存。指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名; 3)....
class String { public: String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数 String & operator =(const String &other); // 赋值函数 private: char *m_data; // 用于保存字符串 }; 1 //普通构造函数 2 String::Stri...
时间复杂度:\(\mathcal{O}(N)\) vector<string> strs = {"dream", "dreamer", "erase", "eraser"}; int main() { cin.tie(nullptr)->sync_with_stdio(false); string s; cin >> s; vector<bool>dp(s.size() + 1, false); dp[0] = true; ...
erase是删除函数,能够对指定位置进行删除键值,也可以根据键进行删除,或者通过迭代器进行删除。 map<char,int>::iterator it=mymap.find('a');//查找关键字为'a'的迭代器位置mymap.erase(it);//对map容器的第二个位置进行删除键值映射mymap.erase('a');//删除('a',1)键值映射,删除成功能找到'a'的键,...
erase()--删除集合中的元素。 unordered_map unordered_map是关联容器,含有带唯一键的键-值对。 搜索、插入和元素移除拥有平均常数时间复杂度。 元素在内部不以任何特定顺序排序,而是组织进桶中。元素放进哪个桶完全依赖于其键的哈希。这允许对单独元素的快速访问,因为一旦计算哈希,则它准确指代元素所放进的桶。
c.erase(beg,end) //移除beg到end范围内的所有元素,并返回下个元素的位置 c.clear() //移除所以元素,清空容器 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 键值对转递 //使用value_type std::map<std::string,float> coll; ...
unordered_map 是关联容器,含有带唯一键的键-值 pair 。搜索、插入和元素移除拥有平均常数时间复杂度。 元素在内部不以任何特定顺序排序,而是组织进桶中。元素放进哪个桶完全依赖于其键的哈希。这允许对单独元素的快速访问,因为一旦计算哈希,则它准确指代元素所放进的桶。
时间复杂度:两者的插入、删除、查找操作的时间复杂度都是 O(log n)使用场景1. 使用 map 的场景需要通过键快速找到对应值的场景,例如:记录学生学号与成绩的对应关系。存储配置项(键值对)。例子:std::map<std::string, int> studentScores;studentScores["Alice"...