C++的vector set map string 相关函数总结

编程入门 行业动态 更新时间:2024-10-24 08:23:06

C++的vector set map string 相关<a href=https://www.elefans.com/category/jswz/34/1771370.html style=函数总结"/>

C++的vector set map string 相关函数总结

如果要看详解请看下面连接:

【C++】蓝桥杯必备 算法竞赛常用STL万字总结_Cpt1024的博客-CSDN博客_算法竞赛pdf

【C/C++】STL详解_沉晓的博客-CSDN博客_c++的stl

【用法学习】C++ pair用法及使用sort函数对pair数据进行排序_荷叶田田_的博客-CSDN博客_sort对pair排序

vector (和string差不多,可以互用)

1.排序

设一维容器nums

  • sort(nums.begin(), nums.end());

2.添加数据

设二维容器nums,添加元素,相当于添加一维容器,一维数组可以不写别名,直接给元素,或者用vector<int>(a.begin(),a.end())来赋值,a为一维容器

可以不取别名,也可以取,看具体用法

return vector<int>(result_set.begin(), result_set.end());

result.push_back(vector<int>{nums[i],nums[left],nums[right]});

3.删除元素

a.pop_back()

3.反转====reverse

和string表达一样

4.insert


string

1.reverse反转

                 reverse(s.begin()+i, s.end());//左闭右开

end()是最后一个元素的后一个位置,所以左闭右开,

源代码:双指针

    void reverse(string& s, int start, int end){ //翻转,区间写法:左闭又闭 []for (int i = start, j = end; i < j; i++, j--) {swap(s[i], s[j]);}}

2.加空间resize()

        s.resize(ordlen + 2 * count);//申请空间

3.前两个和vector相关,后面和队列相关

   pop_back()删除

   push_back()添加元素

   a,back()返回第一个元素

  a.front()返回最后一个元素

b = a.substr(i, j) 从i下标截取j个字符赋值给b

a.insert(i, '.') 在i的哪个下标位置插入点,原来的那个数后移

a.erase(i)删除i的那个位置

set

设nums2为一维容器

1.查找数据

如果到了末尾说明没有找到这个数据

nums_set.find(nums2[i]) != nums_set.end()

2.添加数据

result_set.insert(nums2[i]);


map(和set中的函数差不多)

   auto val = result.find(target - nums[i]);//查找数据
            if ( val != result.end()) {
                return {val->second, i};
            }
            result.insert(pair<int, int>(nums[i], i));一般和pair使用,和之前的vector差不多


 相互作用

一般三个(set,map,数组)都可以互相覆盖

   vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {unordered_set<int> result_set;unordered_set<int> nums_set(nums1.begin(), nums1.end());

nums_set直接加vector中的数据,其他都能这样使用

字符串和数组差别

这里也给大家拓展一下字符串和数组有什么差别,

字符串是若干字符组成的有限序列,也可以理解为是一个字符数组,但是很多语言对字符串做了特殊的规定,接下来我来说一说C/C++中的字符串。

在C语言中,把一个字符串存入一个数组时,也把结束符 '\0'存入数组,并以此作为该字符串是否结束的标志。

例如这段代码:

char a[5] = "asd";
for (int i = 0; a[i] != '\0'; i++) {
}

在C++中,提供一个string类,string类会提供 size接口,可以用来判断string类字符串是否结束,就不用'\0'来判断是否结束。

例如这段代码:

string a = "asd";
for (int i = 0; i < a.size(); i++) {
}

那么vector< char > 和 string 又有什么区别呢?

其实在基本操作上没有区别,但是 string提供更多的字符串处理的相关接口,例如string 重载了+,而vector却没有。

所以想处理字符串,我们还是会定义一个string类型。

后续持续更新......

更多推荐

C++的vector set map string 相关函数总结

本文发布于:2024-02-05 09:15:02,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1674048.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:函数   set   vector   string   map

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!