Qt/C++工作笔记-vector与QVector的拷贝复制(区别与联系)
【注意:不要一个个遍历去赋值,有专门的函数可以拷贝复制】
首先是传统的vector。
他的拷贝复制有3种,一是构造函数,二是利用assign函数,三是利用swap函数。
代码如下:
#include <iostream>
#include <vector>
using namespace std;void main(){vector<int> intVec;for (int i = 0; i < 10;i++){intVec.push_back(i);}vector<int>::iterator iter;for (iter = intVec.begin(); iter != intVec.end(); iter++){if ((*iter) == 5){intVec.erase(iter);break;}}vector<int> intVec_2(intVec); //第一种复制(利用了初始化)vector<int> intVec_3;intVec_3.assign(intVec.begin(),intVec.end()); //第二种复制 (利用assign函数)vector<int> intVecTemp(intVec);vector<int> intVec_4;intVec_4.swap(intVecTemp); //第三种复制(利用swap)getchar();}
现在来看看里面的数据:
传统的vector可以用这3种实现。
下面用QVector来搞下,看看有没有什么区别和联系。
我擦QVector里面没有assign。有点坑啊。
所有QVector实现数据交换有2种,一个是构造函数里面的,一个是使用swap
代码如下:
#include <QApplication>
#include <QVector>int main(int argc, char *argv[])
{QApplication a(argc, argv);QVector<int> intVec;for(int i=0;i<10;i++)intVec.append(i);QVector<int>::iterator iter;for(iter=intVec.begin();iter!=intVec.end();iter++){if((*iter)==5){intVec.erase(iter);break;}}QVector<int> intVec_2(intVec);QVector<int> intVec_3;QVector<int> intTemp(intVec);intVec_3.swap(intTemp);return a.exec();
}
下面来看看容器里面的值:
Qt/C++工作笔记-vector与QVector的拷贝复制(区别与联系)相关推荐
- Qt工作笔记-QList (链表) QVector (数组)【转载】
原文地址:https://blog.csdn.net/qq_33266987/article/details/53333373 C++中的list 和 vector (1). stl提供了三个最基本的 ...
- Qt|C++工作笔记-QVector与Vector去重复的值
Qt中没有unique函数,只能用遍历的方法了,代码如下: #include <QApplication> #include <QDebug> #include <QSt ...
- Qt/C++工作笔记-对vector与QVector中erase操作的进一步认识(区别与联系)
VS代码如下: #include <iostream> #include <vector> using namespace std;void main(){vector< ...
- Qt|设计模式工作笔记-对单例模式进一步的理解(静态加单例实现专门收发UDP对象)
目录 理论 源码 理论 这里只说明一点,使用单例模式,私有成员里放一个成员,这个成员是一个静态成员,把构造函数都屏蔽掉(放到protected或者private中即可)使用一个flag,让其只能生成一 ...
- Qt|Linux工作笔记-异步调用ping命令,重定向获取信息,界面显示
逻辑: 1.使用QProcess在开线程前设置输出文件[setStandardOutputFile]; 2.开一个线程,去专门调用shell命令,比如ping: 3.Qt读取重定向文件,进行界面显示: ...
- Qt|C++工作笔记-对虚函数的进一步认识(关键是Qt中如何正确使用,达到想要的效果)
关于虚函数的简单例子 首先是一个很简单例子,刚学C++的朋友都能理解 源码如下: #include <cstdio> #include <windows.h>static in ...
- Qt|Linux工作笔记-第二种方式读取Linux中top命令(直接读取,非重定向)
第一种方式的链接如下: https://mp.csdn.net/postedit/84067805 第一种方式是重定向到文件,然后读取, 第二种方式不重定向到文件,直接读取! 利用QProcess的特 ...
- MFC工作笔记0009---VC++中 PostMessage和SendMessage的区别
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 最近利用vc编写UDP通讯程序,对其中的消息机制进行了整理.vc中的消息处理与.net中不同.Ne ...
- MyCat分布式数据库集群架构工作笔记0010---高可用_Mycat主--从复制配置下
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 上一节咱们配置了主从复制的上半部分,咱们说,mysql的主从复制,需要首先,从机,请求主机的bin ...
最新文章
- think php a方法,ThinkPHP之A方法实例讲解_PHP
- 时间和空间复杂度概述【Java _demo版】
- Multi-tenant or multi-instance?
- java实现遍历树形菜单方法——实体类VoteTree
- 取消chrome浏览器下input和textarea的默认样式
- Android访问php webservice
- JQuery点击收起,点击展开以及部分非空小验证
- python读取xml文件
- vue2自定义分页组件,可设置每页显示数量,指定跳转具体页面
- Spring配置文件总结
- 初识 Node.js
- 华为手机怎么开启生产模式 | 华为手机打开生产模式后有驱动没有安装好怎么办 | 华为荣耀9手机打开生产模式后有驱动有叹号怎么办
- HR_NZ_ROUNDING_DECIMALS DUMP
- Android 一款十分简洁、优雅的日记APP
- 原生js的e.target.closest()方法
- 模拟私网问题导致节点宕机无法启动
- 地铁客流量分析可视化演示系统(附代码)
- win10下RTX 2080ti安装cuda10.0和cudnn7.6.5
- android开发视频资源 电驴10G下载
- UI层自动化测试框架(四):对象库层
热门文章
- 云开发是啥?看看它在编程导航项目的实践
- 【飞秋】网络的基础-域名篇
- 真诚地希望你耐心的把它看完
- HTML5 API详解(8):worker多线程教你如何避免页面卡死
- 项目下创建文件_Linux 下创建和使用交换文件
- 输入文字加下划线_微信昵称这样设置,文字加上下划线!
- ftpclient读取服务器文件能获得文件名文件大小0_Spring WEB工程整合使用FTP,ftp文本文件解析入库,文件上传下载
- 无监督学习 | PCA 主成分分析之客户分类
- 吴恩达机器学习笔记十四之大规模机器学习
- 1.5w字的Rmarkdown入门教程汇总