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;
}
};