STL学习 05

九、string 9.1 介绍 string是一个字符串类,和char型字符串类似。 可以把string理解为一个字符串类型,像int一样可以定义。 9.2 初始化及定义 //头文件 #include<string> //1. string str1;//生成空字符串 //2. string str2("123456789");//生成"123456789"的复制品 //3. string str3("12345".0,3);//结果为"123",从0开始,长度为3 //4. string str4("12345",5);//结果为"12345",长度为5 //5. string str5(5,'2');//结果为"22222",构造5个字符'2'连接成的字符串 //6. string str6(str2,2);//结果为"3456789",截取第三个元素(2对应第三位)到最后 简单使用 ...

2023年03月22日 · 8 分钟 · 4003 字 · ZhaoYang

STL学习 02

二、Stack 2.1 介绍 栈作为数据结构中的一种,是STL实现的一个先进先出,后进后出的容器。 //头文件添加 #include<stack> //声明 stack<int> s; stack<string> s; stack<node> s;//node是结构体类型 2.2 方法函数 代码 含义 s.push(ele) 元素ele入列,增加元素O(1) s.pop() 移出栈顶元素O(1) s.top() 取得栈顶元素(但是不删除)O(1) s.empty() 检测栈内是否为空,空为真O(1) s.size() 返回栈内元素个数O(1) 2.3 栈遍历 2.3.1 栈遍历 栈只能对栈顶元素进行操作,如果想要进行遍历,只能将栈中元素一个个取出来存在数组中 ...

2023年03月21日 · 1 分钟 · 433 字 · ZhaoYang

STL学习 03

三、queue 3.1 介绍 队列是一种先进先出的数据结构。 //头文件 #include<queue> //定义初始化 queue<int> q; 3.2 方法函数 代码 含义 q.front() 返回队首元素O(1) q.back() 返回队尾元素,O(1) q.push(element) 尾部添加一个元素element进队O(1) q.pop() 删除第一个元素 出队O(1) q.size() 返回队列中元素个数,返回值unsigned int,O(1) q.empty() 判断是否为空,队列为空,返回true,O(1) 3.3 队列模拟 使用**q[]**数组模拟队列 ...

2023年03月21日 · 5 分钟 · 2219 字 · ZhaoYang

STL学习 01

一、vector 1.1 介绍 vector为可变长数组(动态数组),定义的vector数组可以随时添加数值和删除元素。 注意:在局部区域中(比如局部函数里面)开vector数组,是在堆空间里开的。 ...

2023年03月20日 · 5 分钟 · 2178 字 · ZhaoYang

C++学习05

侯捷C++面向对象编程(下)课程打卡 Day5 1 转换 1.1 转换函数 将当前对象的类型转换成其他类型 以operator开头,函数名称为需要转换的类型,无参数 前面无需写返回类型,编译器会自动根据函数名称进行补充 转换函数中,分子分母都没有改变,所有通常加const\ // class Fraction里的一个成员函数 operator double() const { return (double) (m_numerator / m_denominator); } Fraction f(3,5); double d = 4 + f; //编译器自动调用转换函数将f转换为0.6 1.2 non-explicit-one-argument ctor 将其他类型的对象转换为当前类型 ...

2023年03月19日 · 3 分钟 · 1455 字 · ZhaoYang

C++学习06

侯捷C++面向对象编程(下)课程打卡 Day6 4. specialization 特化 4.1 全特化 full specialization 模板是泛化,特化是泛化的反面,可以针对不同的类型,来设计不同的东西 其语法为template<> struct xxx<type> template<> struct hash<char> { ... size_t operator()(char& x) const {return x;} }; template<> struct hash<int> { ... size_t operator()(int& x) const { return x; } }; 这里编译器就会用 int 的那段代码;注意:hash<int>() 是创建临时变量 cout << hash<int>()(1000) 4.2 偏特化 partial specialization 4.2.1 个数上的偏 例如:第一个模板参数我想针对 bool 特别设计 ...

2023年03月19日 · 4 分钟 · 1725 字 · ZhaoYang

C++学习04

侯捷C++面向对象编程(上)课程打卡 Day4 8、 静态 模板 namespace 8.1 static 对于非静态的函数和数据: 非静态的成员函数通过this指针来处理不同的数据(一份函数–>多个对象) 对于静态的函数和数据: ...

2023年03月18日 · 9 分钟 · 4281 字 · ZhaoYang