问题标题: 来自一枚蒟蒻的有关vector的疑惑

1
0
已解决
贾文卓
贾文卓
高级光能
高级光能

请问动态数组vector的clear(清空)操作的时间复杂度是多少?

vector的swap(交换)操作是怎么用的?时间复杂度是多少?

在要将动态数组a1清空的时候,能否新建一个空的动态数组a2,再将这两个动态数组交换(swap)?这样能否节省时间?

【注:拒绝网址,从我做起!但凡发网址的我都不采纳!】


0
已采纳
施巧稚
施巧稚
初级守护
初级守护

vector是一个简单,高效的容器,在尾端插入和删除元素,算法时间复杂度为O(1)常数阶,其他元素的 插入和删除为O(n)的线性阶,其中n为容器的元素个数,vector具有自动的内存管理功能,对于 元素的插入和删除,可动态的调整所占用的内存空间。

(来自百度资料)

我们小学编程老师也讲过一些关于vector的

vector v; 1. v.clear() 移除容器中所有数据。

2. v.empty() 判断容器是否为空。

3. v.erase(pos) 删除pos位置的数据

4. v.erase(beg,end) 删除[beg,end)区间的数据

5. v.front() 传回第一个数据。

6. v.insert(pos,elem) 在pos位置插入一个elem

7.v.pop_back() 删除最后一个数据。

8.v.push_back(elem) 在尾部加入一个数据。

9.v.size() 回容器中实际数据的个数。

10.v.begin() 返回指向容器第一个元素的迭代器

11.v.end() 返回指向容器最后一个元素的迭代器

--------------------------------------------------------------

关于swap我了解的也不是很多

你因该也知道的

就是交换

例如数组顺序重构(酷町堂题目)中的交换语句

 for(int i=k-1;i>=1;i--)
    {
        for(int j=0;j<i;j++)
        {
            if(a[i]<a[j])
                swap(a[i],a[j]);
        }
    }

----------------------------------------------

以上是我所了解的

只要对你有帮助就好

说实话你一点也不蒟蒻,明明是大佬好不好!!!!!!!QVQ(现在你们都这么谦虚,那我们这样的蒟蒻该怎么说自己????)

施巧稚在2019-02-15 15:29:54追加了内容

vector是一个简单,高效的容器,在尾端插入和删除元素,算法时间复杂度为O(1)常数阶,其他元素的 插入和删除为O(n)的线性阶,其中n为容器的元素个数,vector具有自动的内存管理功能,对于 元素的插入和删除,可动态的调整所占用的内存空间。

(来自百度资料)

----------------------------------------

我们小学编程老师也讲过一些关于vector的

vector v; 1. v.clear() 移除容器中所有数据。

2. v.empty() 判断容器是否为空。

3. v.erase(pos) 删除pos位置的数据

4. v.erase(beg,end) 删除[beg,end)区间的数据

5. v.front() 传回第一个数据。

6. v.insert(pos,elem) 在pos位置插入一个elem

7.v.pop_back() 删除最后一个数据。

8.v.push_back(elem) 在尾部加入一个数据。

9.v.size() 回容器中实际数据的个数。

10.v.begin() 返回指向容器第一个元素的迭代器

11.v.end() 返回指向容器最后一个元素的迭代器

--------------------------------------------------------------

关于swap我了解的也不是很多

你因该也知道的

就是交换

例如数组顺序重构(酷町堂题目)中的交换语句

 for(int i=k-1;i>=1;i--)
    {
        for(int j=0;j<i;j++)
        {
            if(a[i]<a[j])
                swap(a[i],a[j]);
        }
    }

----------------------------------------------

以上是我所了解的

只要对你有帮助就好

说实话你一点也不蒟蒻,明明是大佬好不好!!!!!!!QVQ(现在你们都这么谦虚,那我们这样的蒟蒻该怎么说自己????)

0
施巧稚
施巧稚
初级守护
初级守护

如果我以后找到了相关题目,就在帖子里回复你。

0
0
0
被禁言 何冯成
何冯成
中级光能
中级光能

vector是一个简单,高效的容器,在尾端插入和删除元素,算法时间复杂度为O(1)常数阶,其他元素的 插入和删除为O(n)的线性阶,其中n为容器的元素个数,vector具有自动的内存管理功能,对于 元素的插入和删除,可动态的调整所占用的内存空间。

(来自百度资料)

我们小学编程老师也讲过一些关于vector的

vector v; 1. v.clear() 移除容器中所有数据。

2. v.empty() 判断容器是否为空。

3. v.erase(pos) 删除pos位置的数据

4. v.erase(beg,end) 删除[beg,end)区间的数据

5. v.front() 传回第一个数据。

6. v.insert(pos,elem) 在pos位置插入一个elem

7.v.pop_back() 删除最后一个数据。

8.v.push_back(elem) 在尾部加入一个数据。

9.v.size() 回容器中实际数据的个数。

10.v.begin() 返回指向容器第一个元素的迭代器

11.v.end() 返回指向容器最后一个元素的迭代器

--------------------------------------------------------------

关于swap我了解的也不是很多

你因该也知道的

就是交换

例如数组顺序重构(酷町堂题目)中的交换语句

 for(int i=k-1;i>=1;i--)
    {
        for(int j=0;j<i;j++)
        {
            if(a[i]<a[j])
                swap(a[i],a[j]);
        }
    }

----------------------------------------------

以上是我所了解的

只要对你有帮助就好

说实话你一点也不蒟蒻,明明是大佬好不好!!!!!!!QVQ(现在你们都这么谦虚,那我们这样的蒟蒻该怎么说自己????)

施巧稚在2019-02-15 15:29:54追加了内容

vector是一个简单,高效的容器,在尾端插入和删除元素,算法时间复杂度为O(1)常数阶,其他元素的 插入和删除为O(n)的线性阶,其中n为容器的元素个数,vector具有自动的内存管理功能,对于 元素的插入和删除,可动态的调整所占用的内存空间。

(来自百度资料)

----------------------------------------

我们小学编程老师也讲过一些关于vector的

vector v; 1. v.clear() 移除容器中所有数据。

2. v.empty() 判断容器是否为空。

3. v.erase(pos) 删除pos位置的数据

4. v.erase(beg,end) 删除[beg,end)区间的数据

5. v.front() 传回第一个数据。

6. v.insert(pos,elem) 在pos位置插入一个elem

7.v.pop_back() 删除最后一个数据。

8.v.push_back(elem) 在尾部加入一个数据。

9.v.size() 回容器中实际数据的个数。

10.v.begin() 返回指向容器第一个元素的迭代器

11.v.end() 返回指向容器最后一个元素的迭代器

--------------------------------------------------------------

关于swap我了解的也不是很多

你因该也知道的

就是交换

例如数组顺序重构(酷町堂题目)中的交换语句

 for(int i=k-1;i>=1;i--)
    {
        for(int j=0;j<i;j++)
        {
            if(a[i]<a[j])
                swap(a[i],a[j]);
        }
    }
0
被禁言 姜思远
姜思远
初级光能
初级光能

vector v; 1. v.clear() 移除容器中所有数据。

2. v.empty() 判断容器是否为空。

3. v.erase(pos) 删除pos位置的数据

4. v.erase(beg,end) 删除[beg,end)区间的数据

5. v.front() 传回第一个数据。

6. v.insert(pos,elem) 在pos位置插入一个elem

7.v.pop_back() 删除最后一个数据。

8.v.push_back(elem) 在尾部加入一个数据。

9.v.size() 回容器中实际数据的个数。

10.v.begin() 返回指向容器第一个元素的迭代器

11.v.end() 返回指向容器最后一个元素的迭代器

--------------------------------------------------------------

关于swap我了解的也不是很多

你因该也知道的

就是交换

例如数组顺序重构(酷町堂题目)中的交换语句

 for(int i=k-1;i>=1;i--)
    {
        for(int j=0;j<i;j++)
        {
            if(a[i]<a[j])
                swap(a[i],a[j]);
        }
    }

----------------------------------------------

以上是我所了解的

只要对你有帮助就好

0
0
我要回答