append,push_back,pop_back(),to_string函数的用法

append函数是用来在字符串后面增加字符串的,在c++中我感觉有一点鸡肋,因为字符串可以直接用“+”这个符号去加,效果是一样的

string str1,str2;
str1 += str2;
str1.append(str2);//这两者效果一致

push_back这个函数我通常用来给动态数组增加元素,这个函数将你放到括号里的元素放到动态数组的最后一位,这很常用

vector<int> nums;
nums.push_back(1);//这样就给nums加了一个1,可以访问nums[0]找到

类似的,pop_back可以用来删除最后一个元素

nums.pop_back();

to_string函数是用来将类型转换为字符串的,常见的是把数字转换成字符串

int a = 111;
string b;
b = to_string(a);//这里b就变成了"111"

给一道例题
力扣:汇总区间
https://leetcode.cn/problems/summary-ranges/description/?envType=study-plan-v2&envId=top-interview-150

思路:
这道题直接从头遍历,发现下一个数和当前数就差一就要存区间,否则直接存数

代码:

class Solution {
public:
    vector<string> summaryRanges(vector<int>& nums) {
        int n = nums.size();
        vector<string> ans;
        if(n == 1)
        {
            ans.push_back(to_string(nums[0]));
            return ans;
        }
        for(int i = 0;i < n;i ++)
        {
            if(i + 1 < n && nums[i + 1] == nums[i] + 1)
            {
                string temp = to_string(nums[i]);
                i ++;
                while(i + 1 < n && nums[i + 1] == nums[i] + 1)
                {
                    i ++;
                }
                temp.append("->");
                temp.append(to_string(nums[i]));
                ans.push_back(move(temp));
            }
            else
            {
                ans.push_back(to_string(nums[i]));
            }
        }
        return ans;
    }
};

你可能感兴趣的:(算法,c++)