c++中vector<int>和vector<int*>的用法区别
2023-06-13 09:15:06 时间
在使用STL容器(比如map、list、vector等)的时候,是用放一个对象还是放一个对象指针,即是用vector<int>还是vector<int*>,这里的vector可以换成其他的容器,int可以换成其他基本类型,也可以自定义的数据结构或类。
首先,要说明的是,这两种方式,怎么用都可以实现功能,把一组整型数放到容器里。先看看两种方式在使用的时候的区别。
vector<int>vecTemp;
for(inti=0;i<10;i++)
{
vecTemp.push_back(i);
}
这种方式不需要动态new内存,当然也不用delete。
vector<int*>vecTemp;
for(inti=0;i<10;i++)
{
int*nTemp=newint;
nTemp=&i;
vecTemp.push_back(i);
}
这种方式采用new,当然也要用delete:
std::vector<int*>::iteratorIter;
for(Iter=vecTemp.begin();Iter!=vecTemp.end();Iter++)
{
int*temp=*Iter;
deletetemp;
temp=NULL;
}
1)vector<int>不需要动态操作内存,不用担心内存泄露等问题;vector<int*>要注意new和delete成对使用。
2)当int改变成其他类型或结构或类的时候,用vector<int*>这种方式比较方便,容器里放的内容占用的内存也相对要少一些,指针在用的时候,去申请空间,不用,那就是个占用4个字节的地址。
相关文章
- C++学习——c++逗号操作符说明(附加全部运算符优先级)
- 判断素数 -- C++
- C++ 指针的两种操作,通过指针赋值 & 对指针赋值「建议收藏」
- LeetCode82. 删除排序链表中的重复元素 II(c++详解)
- C++ Primer Plus习题及答案-第六章
- C++20 以 Bazel & Clang 开始
- C++ 中的预增(或预减)
- C++字符串加密_c++字符串连接函数
- c++的链表-链表入门(C++)
- c++的链表-C++实现简单链表
- 【超详细】*和&在C/C++中的常见用法(附示例讲解)
- C++ Lambda 本质 & 变量捕获
- C++ 获取系统信息
- 【C++】模板初阶&&STL简介
- c++语法基础课杂记
- 开心档之C++ 类 & 对象
- C++ setw:格式化输出(详解版)
- C++ &&、||、!逻辑运算符用法详解
- C++算法之海量数据处理方法的总结分析
- C++中拷贝构造函数的总结详解
- C++设置系统时间及系统时间网络更新的方法
- C++实现位图排序实例
- C++动态数组类的封装实例