随笔分类 -  容器

摘要:std::vector::reserve 函数在 C++ 中用于预分配内存,避免在元素增加时多次重新分配内存,从而提高性能。 它最常用于需要频繁向 vector 中添加元素,并且可以预估容器的最终大小的场景。 作用 reserve 函数的主要作用是: 预分配容量:它提前为 vector 分配一定数量 阅读全文
posted @ 2024-09-25 20:40 牛马chen 编辑
摘要:在 C++ 中,std::string::find() 是一个用于在字符串中查找子字符串或字符的成员函数。查找成功时返回匹配的索引位置,查找失败时返回 std::string::npos,表示未找到。 std::string::find() 函数原型 std::size_t find(const s 阅读全文
posted @ 2024-09-23 17:22 牛马chen 编辑
摘要:在 C++ 标准库中,std::vector 和 std::map 都支持以下比较运算符: ==(相等运算符) !=(不等运算符) <(小于运算符) <=(小于等于运算符) >(大于运算符) >=(大于等于运算符) 1. std::vector 的比较 对于 std::vector,这些运算符通过词 阅读全文
posted @ 2024-09-23 12:08 牛马chen 编辑
摘要:std::unordered_map 的键要求: std::unordered_map 是基于哈希表的数据结构。 它要求键类型必须支持哈希计算,也就是必须有对应的 std::hash 函数。 另外,键类型还必须支持相等比较(通过 operator==)。 如果键类型没有定义哈希函数(例如你自定义的 阅读全文
posted @ 2024-09-22 22:00 牛马chen 编辑
摘要:C++中支持 std::string str(v.begin(), v.end()); 这样的写法, 是因为C++的STL(标准模板库)容器和字符串类都支持迭代器范围构造函数。 这种写法主要涉及以下几个概念: 1. 迭代器范围构造函数 C++ 标准库中的许多容器(如 std::vector、std: 阅读全文
posted @ 2024-09-19 20:34 牛马chen 编辑
摘要:要将 std::vector<char> 转换为 std::string,可以通过 std::string 的构造函数直接从 vector 中构建字符串。 假设 std::vector<char> 包含的字符是有效的字符串(即以 null 结尾,或者你确定没有多余的字符),可以按照以下几种方法进行转 阅读全文
posted @ 2024-09-19 20:29 牛马chen 编辑
摘要:std::map(有序映射) std::unordered_map(无序映射) std::multimap(有序多重映射) std::unordered_multimap(无序多重映射) 它们的使用方式和特点略有不同,下面分别介绍这些数据结构及其基本用法。 1. std::map(有序映射) std 阅读全文
posted @ 2024-09-19 20:05 牛马chen 编辑
摘要:push_back 与 emplace_back 的区别 push_back: 功能:将一个对象(或其副本)添加到 vector 的末尾。 参数:接受一个对象(或其副本)的引用。 过程: 如果传入的是一个临时对象或一个已有对象,push_back 会创建该对象的副本(或者通过移动构造函数将其移动到 阅读全文
posted @ 2024-09-18 20:57 牛马chen 编辑

点击右上角即可分享
微信分享提示