c++ 操作符重载_string_vector_map
操作符号重载
1: 重载赋值=操作符,
普通对象之间的赋值操作,如果没有重载,就是把数据成员赋值一次。
2: 重载加号操作符
3: 重载[]操作符;
4: 重载比较操作符号;
5: 慎用重载操作符号
; –> 打破我们常规的,别人有可能当作常规来处理;
6: 可以重载的操作符号:
+, -, *, /, %, ^, &, |, ~, !, = 等基本操作符号
[], (), nechw, delete new[], delete[]
- 重载赋值 = 操作符;
- 普通对象之间的赋值操作,默认是同类型赋值,把每个数据成员来赋值一次;
- 重载加号操作符号
- 重载比较操作符号
- 重载[] ……………………..
std名字空间
1: STL: C++的标准模板类库,Standard Template Library 的缩写;
2: 标准 C++的库函数都是在 std名字空间;
3: 如果你不想写std::,你可以加上using namespace std;
std::string
1: C++字符串对象, #include
2: 常量字符串/C语言字符串初始化:
string a = “Hello”; string b = c_ptr;
3: std::string对象内部存储也是一个C的字符串也是以\0结尾;
std::string.c_str()获取string对象中字符串开始的内存地址,兼容C字符串;
4: length(); 获取字符串的长度
5: substr() 将子字符串获取出来
6: find()子串查找函数。找到返回最先出现的位置,如果没有找到返回-1;
7:字符串里面不存任何字符 string s = “”; s.clear();
- c++ std::string
- 定义一个std::string类的实例,栈上的;
- 返回str的c字符串怎么办呢?
- 常见的字符串方法
- 更多的方法参见c++ xstring模板
std::vector
1:vector动态数组的模板,存放任何数据类型的动态数组;
2:#include
3: 定义一个vector, vector<数据类型> 名称
4: push_back() 将元素插入到最后, pop_back;
5:[],操作符号访问每个元素;
5: std::vector<数据类型> iterator vector的迭代器,功能类似于指针。
6: begin()返回元素开始的位置
7: end()返回元素结束的位置,最后一个元素的下一个位置
8: insert(迭代器, 元素)
9: erase(begin, end)
10: erase(迭代器);删除迭代器所在的元素;
11: std::vector遍历;
- std:;vector,动态数组,可以存放任意的数据类型,c++的vector模板更加方便
- 定义一个动态数组,数组存的是哪个类型;int,faloat double……
- vector的迭代器,指针
- 删除
- v.erase(v.begin() + 1, v.begin() + 2); //不包括结束
- 插入
- 删除所有的元素;
std::map
1: std::map是key, value的映射表,能实现快速的查找;
2: std::map定义: std::map<key的类型, value的类型>
m;
3: std::map插入一个元素;
4: std::map删除一个元素;
总结
1: 掌握std::string使用;
2: 掌握std::vector使用;
3: 掌握std::map使用;
4: 掌握操作符号的重载;