![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL学习笔记
Yuga...
目前在自学数据结构,C/C++
展开
-
STL之容器:string
在这里,将`cstr`声明为`const char*`类型的常量指针,是为了表明该指针指向的内容不可更改。在这段代码中,将`str`转换为C风格字符串并赋值给`const char* cstr`时,使用了`const`关键字来修饰指针变量的类型,即`const char*`。总结起来,将`cstr`声明为`const char*`类型是为了强调字符串的不可变性,并防止对字符串内容的修改。替换指定位置或指定范围内的字符为另一个字符串。删除指定位置或指定范围内的字符。第一次出现指定子字符串的位置。原创 2023-08-29 18:05:11 · 27 阅读 · 1 评论 -
STL之容器:vector
由于 C++11 引入了auto关键字,可以用它来自动推导it的类型而无需显式指定。编译器会根据初始化表达式vec.begin()的类型推断 it 的类型为。在 C++ 中,迭代器是一种抽象的概念,它可以被看做是一个指针,指向容器中的一个元素。通过使用迭代器,你可以遍历容器的元素、访问元素的值或修改元素的值。仅仅是为向量分配了内存空间,并不会改变向量的大小。仍然等于向量中当前存储的元素数量。删除 vec中的最后一个元素。,自动完成类型的声明和初始化。返回 vec 中元素的个数。为空返回1,不为空返回0。原创 2023-08-30 20:55:38 · 30 阅读 · 0 评论 -
8.类模板分文件编写
一.问题:类模板中,成员函数创建时机是在调用阶段,这会导致分文件编写时连接不到二.解决:解决方式1:直接包含.cpp源文件解决方式2:将声明和实现写到同一个文件中,并更改后缀名为.hpp,hpp是约定的名称, 并不是强制。原创 2024-02-20 13:08:46 · 393 阅读 · 0 评论 -
7.类模板成员函数类外实现
【代码】7.类模板成员函数类外实现。原创 2024-02-20 12:35:38 · 484 阅读 · 0 评论 -
6.类模板与继承
当类模板碰到继承时,需要注意以下几点:示例二:运行结果:原创 2024-02-20 11:39:46 · 541 阅读 · 0 评论 -
5.类模板
类模板在模板参数列表中可以有默认参数。2. 类模板在模板参数列表中可以有默认参数。类模板没有自动类型推导的使用方式。1.类模板没有自动类型推导的使用方式。原创 2024-02-19 12:34:42 · 343 阅读 · 0 评论 -
4.函数模板的局限性
在上面的代码中,我们自定义了person类,并且通过这个person类创建了两个具体的对象p1和p2,现在我想要比较这两个人的年龄,我们继续使用上面的创建的模板,能否实现成功的比较呢?答案是不行,编译器报错了,编译器不知道要怎么比较两个Person类的实例化对象,因此在这里,我们需要使用函数模板重载的方法来实现对象的比较。函数模板的通用性并不是万能的,我们自己人为定义的新的数据类型,模板不一定总能进行正确的识别与操作。函数,针对这个特定的类型提供了特殊的实现逻辑 ,成功实现两个Person对象的年龄比较。原创 2024-02-19 11:36:41 · 369 阅读 · 0 评论 -
3.普通函数与函数模板的调用规则
解释:在这里,变量为字符型,普通函数传入字符型变量可以发生隐式转换,模板函数可以自动匹配参数类型但是,普通函数要发生类型转换,模板函数不需要,显然模板函数的调用要更适合,因此在这里的结果是调用了模板函数。既然提供了函数模板,最好就不要提供普通函数,否则容易出现二义性。(1).如果函数模板和普通函数都可以实现,优先调用普通函数。(4)如果函数模板可以产生更好的匹配,优先调用函数模板。-如果函数模板和普通函数都可以实现,优先调用普通函数。-如果函数模板可以产生更好的匹配,优先调用函数模板。原创 2024-02-19 10:59:06 · 722 阅读 · 0 评论 -
2.普通函数与函数模板的区别
普通函数调用时可以发生隐式类型转换,在Add(10,'A')函数中,字符A被隐式换为了int类型,其值变为了其对应的ASCII码65,因此相加结果变为75。函数模板 用显式指定类型推导,在Add(10,'A')函数中,字符A被隐式换为了int类型,其值变为了其对应的ASCII码65,因此相加结果变为75。函数模板 用自动类型推导,在Add(10,'A')函数中,字符A的类型为char,无法发生隐式类型转换,因此报错。2.3函数模板 用显式指定类型推导,可以发生隐式类型转换。原创 2024-02-18 12:30:33 · 374 阅读 · 0 评论 -
1.函数模板基础
建立一个通用函数,其函数返回值类型和形参类型可以不具体指定,用一个虚拟的类型来代表,提高复用性。运行发现报错了,这是因为。typename和class:关键字,声明其后面的符号是一种数据类型,可以用class代替。T:通用的数据类型名称可以替换,通常为大小写。template:关键字,声明创建模板。原创 2024-02-18 11:21:59 · 874 阅读 · 0 评论