![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程算法笔记
文章平均质量分 62
编程中的算法知识点积累
非洲蜗牛
这个作者很懒,什么都没留下…
展开
-
关于C++字符串操作更节省资源的办法
相对而言比使用char数组再用cin.getline()输入要更节约资源。原创 2024-06-24 11:29:21 · 80 阅读 · 0 评论 -
C++ Vectors
然而,与数组不同,一个vector的大小是可以动态增加的。vector的迭代器的作用被用于指向某一个元素的地址,类似于指针。类型参数T指出了vector的类型,它可以是任何的原始数据类型,比如int、char、float。在这个例子中,5是vector的大小,而12则是vector中的值。我们使用push_back( )方法,将一个元素添加到了vector的末尾。这意味着,每当我们需要时,我们都可以在执行程序期间改变vector的大小。由于vector的大小能够动态增加,因此我们在这里不指定其大小。翻译 2024-06-06 22:21:13 · 43 阅读 · 0 评论 -
C++ stoi( )
幸运的是,C++的stoi( )函数将数字字符串转换成了数字,stoi还具有一些功能,可以去除字符串中的其他字符,比如尾部字符。正如这个例子所示,stoi函数在字符串s1中不会受到负号的影响,在字符串s2中消除了123之后的字符,并在字符串s3中移除了所有不雅观的零。只要用户输入有效的响应,该代码就会将该整数转移到我们的变量 x 中,然后将该值输出给用户。并且C++程序员使用它在字符串外部解析整型,该函数是在C++ 11的时候放入C++的。接下来,我们需要指定字符串中需要解析的数字起始位置的标识符。翻译 2024-05-30 11:03:42 · 259 阅读 · 0 评论 -
C++ Unordered Map
建议使用at( )而不是[ ],如果传入的键不存在,at( )就会抛出异常,而[ ]会给这个键配一个脏数据。C++的STL中的unordered_map是一种无序关联容器,提供了一种无序map或字典数据结构的功能。同时unordered map是通过散列表实现的,而常规的map是通过二叉搜索树实现的。4.将一个unordered map中的内容复制到另一个新的unordered map中。(1) find( ) —— 如果键存在,返回元素迭代器,否则返回end( )迭代器。翻译 2024-05-28 22:06:57 · 177 阅读 · 0 评论 -
C++ Map
在这个例子中,我们使用了一个自定义的迭代器iter,去访问student map中的键和值,first对象提供键,second对象提供值。在C++中,map是关联容器,存储数据对。(2) 如果元素不存在,返回一个迭代器指向map的末端,例如,student.end()利用键或者迭代器,该函数能够删除map中的单个元素。end() —— 返回指向map的最后一个元素之后理论的元素的迭代器。itr_last —— 指向被删除元素的下一个元素的迭代器。(1) 如果元素存在,返回一个迭代器指向这个元素。翻译 2024-05-28 17:20:09 · 24 阅读 · 0 评论 -
C++ std::sort
使用的范围是[first,last),包含从first到last之间的所有元素,包括first指向的元素,但不包括last指向的元素。接受两个在指定严格弱排序范围内的元素作为参数的二元函数,并返回一个可转换为布尔值的值。返回的值表示第一个参数传递的元素是否在该函数定义的特定严格弱排序中位于第二个参数之前。将范围[first,last) 中的元素以升序排列,元素的比较优先使用操作符<, 其次使用函数comp。我自己理解是,如果不加上自定义的函数comp,这个函数默认就是升序排列。转载 2024-05-28 15:27:07 · 14 阅读 · 0 评论 -
C++ string substr
返回一个新创建的字符串对象,其值初始化为对本对象子字符串的复制。该子字符串是从字符位置 pos 开始,包含 len 个字符(或者直到字符串的末尾,以先到达者为准)。(2) 要包含在子字符串中的字符数(如果字符串较短,则尽可能多地使用字符。string::npos 表示直到字符串末尾的所有字符。(1) pos: 作为字串第一个被拷贝的字符的位置,转载 2024-05-28 11:04:23 · 20 阅读 · 0 评论 -
C++ Ranged for Loop
C++ 11中引入了一种特殊的for循环,特定的用于数组和vector中。翻译 2024-05-27 11:55:34 · 11 阅读 · 0 评论 -
C++ Unordered Set
在C++中,容器适配器是指采用现有的STL容器,并提供受限接口以使其表现出不同行为的一种机制。例如,stack就是一个容器适配器,它使用顺序容器deque,并提供了受限接口来支持push()和pop()操作。STL中的unordered_set是一种无序关联容器,提供了无序集合数据结构的函数。与常规的集合相反,无序集合中的数值的顺序是未定义的。与其他的容器不同,我们没有使用直接的初始化,因为容器适配器限制直接对其赋值。在C++中,关联容器允许我们以有序的方式存储元素,其顺序不取决于元素插入的时间。翻译 2024-05-27 11:25:13 · 67 阅读 · 0 评论 -
散列表基础(Basics of Hash Tables)
在开放地址的情况下,所有的元素不是存放在链表中而是存放在哈希表自身之中的。由于所有字符串都包含相同的字符,只是排列顺序不同,因此它们的总和为599。在查找元素时,数组按照相同的顺序进行扫描,直到找到目标元素或找到一个未使用的空位。对于特定字符串,其索引将等于字符的ASCII值之和乘以它们在字符串中的顺序,然后再取模2069(质数)。散列函数是一个能够将任意大小的数据集映射成一个固定大小的数据集的函数,该函数存储在哈希表中。在这种情况下,访问一个字符串的时间复杂度为O(n),这表明此散列函数是不好的。翻译 2024-05-26 21:55:38 · 12 阅读 · 0 评论