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;
    }
};
  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: QVector的appendpush_back都是向QVector中添加元素的函数append函数将一个元素添加到QVector的末尾,可以添加一个元素或者一个QVector。 push_back函数append函数作用相同,将一个元素添加到QVector的末尾,但是只能添加一个元素。 两者的区别在于,append函数可以添加一个QVector,而push_back函数只能添加一个元素。 ### 回答2: QVector是Qt中常用的数据结构之一,它类似于C++中的std::vector,可以用来存储任意类型的数据。QVector包含了很多有用的成员函数,其中有两个常用的函数appendpush_back,本文将详细介绍这两个函数用法和区别。 1. append函数 append是QVector中最常用的成员函数之一,主要用于在QVector的末尾添加元素。它的语法如下: ``` void QVector::append(const T& value) ``` 其中,T代表要添加的元素的类型,value是要添加的元素的值。 使用示例: ``` QVector<int> vec; vec.append(1); vec.append(2); vec.append(3); ``` 在上面的示例中,我们创建了一个空的QVector<int>,然后分别使用append函数在末尾添加了1、2、3三个元素。注意,QVector是一个动态数组,它会随着元素的不断添加自动扩展大小。 2. push_back函数 push_back函数append函数类似,也用于在QVector的末尾添加元素,但是它的语法略有不同: ``` void QVector::push_back(const T& value) ``` 这里的语法与C++中的std::vector相同。同样,T代表要添加的元素的类型,value是要添加的元素的值。 使用示例: ``` QVector<int> vec; vec.push_back(1); vec.push_back(2); vec.push_back(3); ``` 这个示例与上面的示例相同,只不过使用了push_back函数来添加元素。和append函数一样,push_back函数也会自动扩展QVector的大小。 3. 区别 在使用过程中,我们可以发现appendpush_back函数用法很相似,它们都是用于在QVector的末尾添加元素。实际上,这两个函数几乎没有什么区别,唯一的区别是它们的语法略有不同。 在Qt的文档中,也明确指出了append函数push_back函数的区别: - append函数是QVector的成员函数,可以看做是QVector封装的一部分; - push_back函数是STL中std::vector的成员函数,Qt只是将它兼容到了QVector中。 因此,推荐使用append函数,尤其是在Qt的项目中,因为它更符合Qt的封装思想。只有在需要与C++中的std::vector交互时,才使用push_back函数。例如,推荐使用append函数: ``` QVector<int> vec; vec.append(1); vec.append(2); vec.append(3); ``` 最后,需要注意的是,无论是append函数还是push_back函数,在连续添加大量元素时都会带来很大的性能损失,比较好的解决办法是在添加之前调用一次reserve函数,为QVector预留足够的空间。例如: ``` QVector<int> vec; vec.reserve(10000); for(int i=0; i<10000; ++i){ vec.append(i); } ``` 这样,在添加元素时,QVector不需要重新分配内存,可以避免频繁的内存分配和释放操作,提高程序性能。 ### 回答3: QVector是Qt框架中提供的一个容器类,可以存储同类型的数据。在QVector中,有两个常见的添加元素的方法,分别是appendpush_back。 append方法是将元素添加到QVector队尾,如果队列的长度不够大,则会自动分配空间。这个方法的时间复杂度是O(1),即添加元素的效率非常高。append函数可以使用一个对象作为参数,也可以使用一个QVector对象作为参数,将其他QVector对象中的所有元素添加到当前对象中。 push_back方法是STL标准库提供的一个添加元素的方法,在Qt中也有相应的实现。push_back方法与append类似,也是将元素添加到QVector队尾,如果队列的长度不够大,则会自动分配空间。与append不同的是,push_back方法实际上是调用了append方法,时间复杂度也是O(1)。push_back函数只能使用一个对象作为参数,不能使用QVector对象作为参数。 对于两者的选择,通常情况下,选择哪个方法都无所谓,因为它们的效率几乎相同。但是有一些情况下,append方法会更加有效率。例如,如果添加的元素是一个QVector对象,使用append方法只需要分配一次内存,而使用push_back方法需要两次内存分配,这样会降低添加元素的效率。 在使用QVector时,需要注意的是,如果QVector已经分配了足够的内存,那么在添加新元素时,不会发生重新分配内存的过程。这样可以节省时间和内存,提高程序的效率和运行速度。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值