c++中vector<int>和vector<int*>的用法及区别

 更新时间:2022年07月18日 11:16:30   作者:军说网事  
这篇文章主要介绍了c++中vector<int>和vector<int*>的用法及区别,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

在使用STL容器(比如map、list、vector等)的时候,是用放一个对象还是放一个对象指针,即是用vector<int>还是vector<int*>,这里的vector可以换成其他的容器,int可以换成其他基本类型,也可以自定义的数据结构或类。

首先,要说明的是,这两种方式,怎么用都可以实现功能,把一组整型数放到容器里。先看看两种方式在使用的时候的区别。

1.vector<int>

vector<int> vecTemp;
for (int i=0; i< 10; i++)
{
    vecTemp.push_back(i);
}

这种方式不需要动态new内存,当然也不用delete。

2.vector<int*>

vector<int*> vecTemp;
for (int i=0; i< 10; i++)
{
    int* nTemp = new int;
    nTemp = &i;
    vecTemp.push_back(i);
}

这种方式采用new,当然也要用delete:

std::vector<int*>::iterator Iter;
for(Iter=vecTemp.begin(); Iter!=vecTemp.end(); Iter++)
{
    int* temp = *Iter;
    
    delete temp;
    temp = NULL;
}

3.两种用法的区别

1)vector<int>不需要动态操作内存,不用担心内存泄露等问题;vector<int*>要注意new和delete成对使用。

2)当int改变成其他类型或结构或类的时候,用vector<int*>这种方式比较方便,容器里放的内容占用的内存也相对要少一些,指针在用的时候,去申请空间,不用,那就是个占用4个字节的地址。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C语言位运算和sizeof运算符详解

    C语言位运算和sizeof运算符详解

    这篇文章主要介绍了C语言位运算和sizeof运算符详解的相关资料,这里提供了详细的知识要点,并附简单代码示例,需要的朋友可以参考下
    2016-11-11
  • 70行C语言代码实现贪吃蛇

    70行C语言代码实现贪吃蛇

    这篇文章主要为大家详细介绍了70行C语言代码实现贪吃蛇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • C++实现LeetCode(114.将二叉树展开成链表)

    C++实现LeetCode(114.将二叉树展开成链表)

    这篇文章主要介绍了C++实现LeetCode(114.将二叉树展开成链表),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • 用C语言实现简单五子棋小游戏

    用C语言实现简单五子棋小游戏

    这篇文章主要为大家详细介绍了用C语言实现简单五子棋小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Qt6+QML实现Windows屏幕录制功能

    Qt6+QML实现Windows屏幕录制功能

    Qt6提供了很多丰富的多媒体支持类,本文将为大家详细介绍一下Qt6如何结合QML实现Windows屏幕录制功能,文中的示例代码简洁易懂,有需要的小伙伴可以参考一下
    2025-04-04
  • C++中Lambda表达式的语法与实例

    C++中Lambda表达式的语法与实例

    C++ 11 中的 Lambda 表达式用于定义并创建匿名的函数对象,以简化编程工作,下面这篇文章主要给大家介绍了关于C++中Lambda表达式的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-10-10
  • C++ Boost MPI接口详细讲解

    C++ Boost MPI接口详细讲解

    Boost是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一,是为C++语言标准库提供扩展的一些C++程序库的总称
    2022-11-11
  • 详解C++ 临时量与临时对象及程序的相关优化

    详解C++ 临时量与临时对象及程序的相关优化

    这篇文章主要介绍了C++ 临时量与临时对象及程序的相关优化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • C++实现单链表按k值重新排序的方法

    C++实现单链表按k值重新排序的方法

    这篇文章主要介绍了C++实现单链表按k值重新排序的方法,结合实例形式分析了C++单链表中按照给定值进行判断与排序的相关操作技巧,需要的朋友可以参考下
    2017-05-05
  • C语言的可变参数函数实现详解

    C语言的可变参数函数实现详解

    某些情况下我们希望函数的参数个数可以根据需要确定,因此c语言引入可变参数函数。典型的可变参数函数的例子有printf()、scanf()等,下面我就开始讲解
    2021-08-08

最新评论