这一篇博客主要就是详细记录一下C++常用到的数据结构。算是总结归纳吧。这个博客不定期更新,我遇到啥新的情况,就记录下啥情况。
vector的用法及相关函数
变量的声明
vector<int>a
这个相当于声明了一个int a[]
大小没有指定
vector<vector<int>>a 或者 vector<int *>a
相当于声明了一个二维数组
vector<int>a(length,val)
相当于声明了一个长为length ,并且每个数值都为val的int型数组* 函数的使用*
首先声明一个vector<int>vec
然后使用各类函数的效果如下:函数名 ---> 用法 ---> 效果
push_back()
—>vec.push_back(val)
—> 在末尾插入值
pop_back()
—>vec.pop_back()
—> 末尾弹出一个值
注意:向量容器的成员函数pop_back()可以删除最后一个元素,而函数erase()可以删除由一个iterator指出的元素,也可以删除一个指定范围的元素。
还可以采用通用算法remove()来删除vector容器中的元素,不同的是,采用remove一般情况下不会改变容器的大小,而pop_back()与erase()等成员函数会改变容器的大小。
insert()
—>vec.insert(vec.begin(),val)
—> 在开头插入值
insert()
—>vec.insert(vec.end(),val)
—> 在末尾插入值
insert()
—>vec.insert(vec.end(),temp.begin(),temp.end())
—> 在末尾插入整段的值
sort()
—>sort(vec.begin(),vec.end())
—> 进行排序
string的用法及相关函数
变量的声明
string 可以直接声明一个变量
函数的使用
(1) str.find(‘a’)函数:直接通过str变量调用,找到返回字符所在的位置,找不到返回-1。
或者str.find(‘a’,5)函数:从字符串str下标5开始的位置,查找字符‘a’。
(2)str.rfind(‘a’)函数:从str中找出最后一次出现‘a’的位置,查找失败返回string::npos
(3)str.substr(0,5)函数:获取str从0位置开始长度为5的子字符串
(4)string 类型可以直接进行加减,或者str+=s;在字符串后面进行加减;还可以直接进行sort(str.begin(),str.end());
(5)isalpha(‘a’)可以直接判断字符是否是字母,非常好用
(6) vector<string>temp
可以用来对字符串进行划分,然后按次序输出,比较好用。
(7) stoi("123")
字符串转换为整数非常的方便。这个函数可以直接使用