C++中front,back,begin,end函数的用法以及sort可以对动态数组进行左端排序

front用来返回动态数组中第一个元素的引用,back用来返回最后一个元素的引用
begin用来返回第一个元素的地址,end返回最后一个元素的下一个位置的地址
用法示例

vector<int> nums;
nums.push_back(1);
nums.push_back(2);
cout << nums.front() << endl;//输出1
cout << nums.end() << endl;//输出2
auto it = nums.begin();
while(it != nums.end())
{
	...
}
auto it1 = nums.end() - 1;
while(it1 != nums.begin())
{
	...
}

sort函数我们并不陌生,但是今天看力扣的官方题解我发现它也可以对动态数组的动态数组进行排序
举个例子

#include <bits/stdc++.h>
using namespace std;
int main()
{
    vector<vector<int>> nums;
    nums.push_back({1,4});
    nums.push_back({5,1});
    nums.push_back({4,2});
    sort(nums.begin(),nums.end());
    for(auto it :nums)
    {
        cout << it[0] << " " << it[1] << endl;
        //输出结果
  		 1 4
		 4 2
		 5 1
    }
    return 0;
}

提供一道例题
力扣:合并区间
https://leetcode.cn/problems/merge-intervals/description/?envType=study-plan-v2&envId=top-interview-150
思路:
这道题思路是拍好左区间的数后对下一个区间的左端点和当前区间的右端点进行比较,如果下一个区间左端点比当前区间右端点小,那么可以合并
代码(官方题解):

class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        if(intervals.size() == 0)
        {
            return {};
        }
        sort(intervals.begin(),intervals.end());
        vector<vector<int>> merged;
        for(int i = 0; i < intervals.size(); i ++)
        {
            int L = intervals[i][0],R = intervals[i][1];
            if(!merged.size()||merged.back()[1] < L)
            {
                merged.push_back({L,R});
            }
            else
            {
                merged.back()[1] = max(merged.back()[1],R);
            }
        }
        return merged;
    }
};
  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C++的vector是一个动态数组,它可以根据需要自动调整大小。以下是vector容器的全部用法和功能: 1. 创建vector容器 ``` vector<数据类型> 容器名; ``` 2. 向vector添加元素 ``` 容器名.push_back(元素值); // 在vector末尾添加一个元素 ``` 3. 访问vector的元素 ``` 容器名[index]; // 访问指定下标的元素 容器名.front(); // 访问vector的第一个元素 容器名.back(); // 访问vector的最后一个元素 ``` 4. 删除vector的元素 ``` 容器名.pop_back(); // 删除vector的最后一个元素 容器名.erase(容器名.begin() + index); // 删除指定下标的元素 容器名.erase(容器名.begin(), 容器名.begin() + n); // 删除前n个元素 容器名.clear(); // 删除vector的所有元素 ``` 5. 获取vector的大小和容量 ``` 容器名.size(); // 获取vector的大小,即元素个数 容器名.capacity(); // 获取vector的容量,即可以存储的元素个数 ``` 6. 判断vector是否为空 ``` 容器名.empty(); // 如果vector为空,则返回true,否则返回false ``` 7. 插入元素到vector的指定位置 ``` 容器名.insert(容器名.begin() + index, 元素值); // 在指定下标位置插入元素 ``` 8. 将vector的元素排序 ``` sort(容器名.begin(), 容器名.end()); // 默认从小到大排序 sort(容器名.begin(), 容器名.end(), greater<数据类型>()); // 从大到小排序 ``` 9. 合并两个vector ``` 容器名1.insert(容器名1.end(), 容器名2.begin(), 容器名2.end()); // 将容器名2合并到容器名1的末尾 ``` 以上是vector容器的主要用法和功能,还有其他一些用法函数可以在需要时查阅相关文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值