一步步学Qt,第九天-Q"STL"与STL-Qvector,vector

使用STL容器还是Qt容器? 在C++编程中,选择合适的容器库对于编写高效、可维护的代码至关重要。两大主流选择是STL容器(如std::map等)和Qt容器(如QMapQVector等)。本文将探讨两者的优缺点,以帮助开发者在特定应用场景中做出更好的选择。 阅读详情

一步步学Qt,第九天-Q"STL"与STL-Qvector,vector

这个部分或许没有代码出现,更多的是文字分析,即使会出现也可能就是很简短的部分。今天主要来分析和对比一下Q”STL”与C++的STL,主要讲解他们各自在定义和使用的区别,不仅仅是学习C++的提升也是对Qt与C++STL的结合。

A、QVector<T>与vector<T>

1、 对应变量的声明:

QVector<T> var_qstl;

vector<T> var_stl;

eg:      QVector<int> n_vector_qstl;    //声明一个无初始化向量大小的向量n_vector_qstl

vector<int> n_vector_stl;   //声明一个无初始化向量大小的向量n_vector_stl

2、项的赋值以及项值的获取

2.1  项的赋值
 QVector<int> n_vector_qstl;   //没有初始化向量大小
    //set Values
    n_vector_qstl.append(1);
    n_vector_qstl.append(2);
    n_vector_qstl.append(3);
    QVector<int> n_vector_qstl(3);   //已初始化向量大小
    //set Values
    n_vector_qstl[0] = 1;
    n_vector_qstl[1] = 2;
    n_vector_qstl[2] = 3;

vector<int> n_vector_stl;   //没有初始化向量大小
    //set values
    n_vector_stl.push_back(1);
    n_vector_stl.push_back(2);
    n_vector_stl.push_back(3);
    vector<int> n_vector_stl(3);   //已初始化向量大小
    //set values
    n_vector_stl[0] = 1;
    n_vector_stl[1] = 2;
    n_vector_stl[2] = 3;

2.2  项值获取
QVector:

//getValues
for (int i=0; i<n_vector_qstl.count(); i++){
    cout << n_vector_qstl[i] << setw(2);
}
cout << endl;

或者:

for (QVector<int>::size_type i=0; i!=n_vector_qstl.count(); i++){
        cout << n_vector_qstl[i] << setw(2);
    }
    cout << endl;

vector:

//get values
    for(vector<int>::size_type ix=0; ix!=n_vector_stl.size(); ++ix){
        cout << n_vector_stl[ix] << setw(2);
    }
    cout << endl;
2.3  完整代码:

QVector:

#include <QtCore/QCoreApplication>
#include <QVector>
#include <iostream>
#include <iomanip>
using namespace std;


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QVector<int> n_vector_qstl;

    //set Values
    n_vector_qstl.append(1);
    n_vector_qstl.append(2);
    n_vector_qstl.append(3);
    //getValues
    for (int i=0; i<n_vector_qstl.count(); i++){
        cout << n_vector_qstl[i] << setw(2);
    }
    cout << endl;

    for (QVector<int>::size_type i=0; i!=n_vector_qstl.count(); i++){
        cout << n_vector_qstl[i] << setw(2);
    }
    cout << endl;
    return a.exec();
}

vector:

#include <QtCore/QCoreApplication>
#include <vector>
#include <iostream>
#include <iomanip>
using namespace std;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    vector<int> n_vector_stl;
    //set values
    n_vector_stl.push_back(1);
    n_vector_stl.push_back(2);
    n_vector_stl.push_back(3);
    //get values
    for(vector<int>::size_type ix=0; ix!=n_vector_stl.size(); ++ix){
        cout << n_vector_stl[ix] << setw(2);
    }
    cout << endl;
    return a.exec();
}



Qt入门教程【STL篇】STL分析 Qt中的STL分析 阅读详情

相关推荐

【Qt】Qt容器和STL容器的区别

Qt容器和STL容器略有不同,作为一个Qter,应该知道它们之间的异同。

郭老二 670

STL库的使用之容器模板类QVector使用

QVector的简单使用

yinchengkai的博客 977

Qt中STL容器的分析

本文对 Qt 中的 STL 容器进行了简要分析,希望能够帮助读者更好地理解和使用 Qt 中的 STL 容器。在实际开发中,需要根据具体场景选择不同的容器类型,并注意其内部数据结构和主要特征,以便能够高效地处理数据。

. 725

Qt STL类型迭代器

STL迭代器与Qt和STL的原生算法兼容,并且进行了速度优化;对于每一个容器类,都有两个STL类型迭代器:一个用于只读访问,一个用于读写访问。无需修改数据时建议使用只读迭代器,因为速度更快。下表为类型总表:在定义只读迭代器和读写迭代器时的区别,它们使用了不同的关健字,const_iterator 定义只读迭代器,iterator 定义读写迭代器。此外,还可以使用 const_reverse_iterator 和 reverse_iterator 定义相应的反反向迭代器。STL 类型的迭代器是数组的指针,所以

希望能帮助大家,希望大家多多支持,你们的支持是我前进的动力。 798

潜在图神经网络学习笔记(Latent Graph Neural Networks for Human Skeleton-based Action Recognition)

在本文中,我们从一个新的角度来解决这个问题,通过将非结构化的骨架数据映射到潜在空间,如图2所示,这里称为潜在特征空间或嵌入空间,其中一组项嵌入在一个流形中[ 1 ],并且在潜在空间中彼此更相似的项被放置在彼此更接近的位置。潜在空间中的位置可以被认为是由一组潜在变量定义的,这些潜在变量来源于对象的相似性。将骨架数据嵌入到流形中,消除了远近邻居之间的冗余依赖关系,以解决加权问题。得到具有多尺度聚合特征的稀疏图矩阵结构,以更好地理解骨骼关节的直接加权信息。

qq_45631885的博客 489

Ubuntu+Dify实战:如何让大模型知识库完美支持图片召回(附避坑指南)

本文详细介绍了在Ubuntu系统上部署Dify平台,并实现大模型知识库图片召回功能的完整实战方案。通过解析Dify处理图片的底层逻辑,重点讲解了配置Nginx代理服务器将本地图片路径转换为可公开访问URL的核心工程步骤,并提供了文档预处理、环境变量配置以及父子分段策略等高级技巧,帮助开发者构建图文并茂的AI应用,有效提升知识库的丰富性和用户体验。

c7d8e的博客 445

一步步学Qt,第十天-Q”STL”与STL-迭代器

一步步学Qt,第十天-Q”STL”与STL-迭代器 Qt提供了两类的迭代器,Java风格的和STL风格的。她们各自有自己的优势,使用java风格易于使用,使用STL风格的易于与STL的一些算法结合功能变得更加强大。 Java风格的迭代器,要知道他们本身不是直接指向项的,而是在第一项之前,最后以前之后或在两项之间: 在Java风格的迭代器中,hasNext()这个函数,...

weixin_33909059的博客 265

MATLAB并行开不了的解决办法

在服务器上新安装了MATLAB 2013b,在开并行计算的时候出现了下列问题 经过在网上搜多这个问题,我感觉这个问题应该是安装的时候的验证问题或者激活不成功之类的。注意其中有一句validate the profile ‘local’ in the Cluster Profile Manager.在matlab官网上找到了设置Cluster Manager的教程,如下 parallel>

sinat_36713319的博客 5987

qt对stl模型显示的封装

因为qt自身带的标题栏显示有点单调,我们这里使用了自定义标题栏。对外只有两个函数,一个是显示一个是指定文件夹下模型路径。

weixin_48657573的博客 909

写一个b站爬虫(思路)

part 0 安装 scrapy, requests part 1 信息获取 打开番剧索引链接(https://www.bilibili.com/anime/index/) F12控制台,选中NETWORK,来到xhr文件,我们可以找到了存放番剧json的地方

kou的博客 485

基于多时间尺度的电动汽车光伏充电站联合分层优化调度(Matlab代码实现)

该研究提出了一种电动汽车光伏充电站的分层优化调度方法,采用日前-日内两阶段协同优化框架。日前阶段通过混合整数规划对多充电站进行全局优化,以平抑电网波动和降低购电成本为目标;日内阶段基于实时数据,采用NSGA-II等算法动态分配充电功率。该方法实现了光伏高效消纳、成本节约和电网负荷平衡的有效统一。

zhangxd212489的博客 519

Qt中关于STL迭代器的数据删除操作

主要是记录一下关于Qt中STL删除数据元素的一些常见问题 使用remove接口删除:   STL中提供的删除接口remove并不是真正意义上的删除操作,而是使用下一个元素来替换当前元素,待删除的目标元素仍然存在;如果我们确信要删除某些元素时,需要使用erase接口去删除; 使用erase接口删除:   当使用这个接口去删除元素数据时,会改变迭代器的指向,目标元素被删除后,指向该元素的迭代器会自动指...

愤怒的狸猫 的博客 1612

PyTorch深度学习实战(47)——使用PyTorch构建Transformer模型

相较于传统模型,如循环神经网络 (RNN),Transformer 的优势在于能够理解输入和输出序列中元素之间的关系,在大语言模型 (如 ChatGPT 和 DeepSeek) 的发展中起到了关键作用,为了从零开始构建 Transformer,首先探讨自注意力机制,包括查询 (query)、键 (key) 和值 (value) 向量,以及缩放点积注意力 (SDPA)。将层归一化和残差连接集成到多头注意力层中,并与前馈层结合,构建编码器层,堆叠编码器层构建编码器,还将实现 Transformer 中的解码器。

盼小辉丶的博客 3万+

Qt框架与STL库之间的巅峰对决:差异、优缺点及适用场景

Qt框架与STL库之间的巅峰对决:差异、优缺点及适用场景

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 4730

基于 STM32 的智能水表流量计设计与实现 —— 数据采集与远程传输

本文设计的基于 STM32 的智能水表流量计通过霍尔传感器实现流量采集,结合 STM32 的处理能力完成数据计算、存储与远程传输,具备计量精准、功耗低、可远程监控等特点。未来可优化方向:引入低功耗模式延长电池寿命,增加水质检测模块实现多参数监测,提升水务管理智能化水平。

weixin_42300449的博客 1028

【异常】SpringCloud Gateway报错503 SERVICE_UNAVAILABLE “Unable to find instance for xxx-gen“

网关服务报错,如下。

奶爸的编程之路,也就一周冷个三天 4224

C++ STL与Qt容器对比

Qt/C++混编的场景到底该选择哪家的容器

x2528238270的博客 1893

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Qt之·STL(标准模板库)】

STL(Standard Template Library)是一种C++标准库,它提供了一系列高效的数据结构和算法,使程序员能够更轻松地编写高质量的代码。STL的诞生是为了提高C++程序的可重用性和可维护性,它已经成为了现代C++程序设计的重要组成部分。本博客主要介绍STL的概念、设计理念、常用数据结构和算法,并提供一些实际案例和代码示例,帮助程序员更好地理解和运用STL。此外,本博客也会探讨一些STL中容易被忽视的细节和技巧,为读者提供更深入的学习和实践指导。

m0_66203017的博客 664

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Qt 5.9.5 STL容器详解

(1)只要是数据就必须要使用容器 ,程序中的数据放在容器中方便增删改查。 (2)Qt库提供了一组通用的基于模板的容器类( containerclasses )。 这些容器类可以用来存储指定类型的项目( items )。.......................................

柳一航的博客 4277

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

STL容器与QT自带容器的总结

1、STL中的容器 STL中的常用容器包括:顺序性容器(vector、deque、list)、关联容器(map、set)、容器适配器(queue、stack), 主要是分为 我们常用到的STL容器有vector、list、deque、map、set STL中顺序容器类和关联式容器类的主要特征如下: (1)Vector 1、内部数据结构:连续存储,例如数组。 2、随机访问每个元素,所需要的时间为常量。 3、在末尾增加或删除元素所需要时间与元素数目无关,在中间或开头增加或删除元素所需时间随元素数目呈线性变化。

记录一些平时工作或者学习中的瞬间 2450

JSTL概述

一、JSTL概述 JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用起来非常方便,它与JSP动作标签一样,只不过它不是JSP内置的标签,需要我们自己导包,以及指定标签库而已! 如果你使用MyEclipse开发JavaWeb,那么在把项目发布到Tomcat时,你会发现,MyEclipse会在lib目录下存放jstl的Jar包!如果你没有使用MyEclipse开发那么需要自己来导入这个JSTL的Jar包:jstl-1.2.jar。 JSTL一共包含四大标签

Q2854542067的博客 3648

qt c++ stl

STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++ Standard Library)中,是ANSI/ISO C++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性。 STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于ST

abc 2343

Qt容器类

记录下qt框架里面的容器方法,

qq_45524532的博客 433

JSTL标签

文章目录一. 概念二. 下载使用三. jsp页面中使用jstl标签四. 核心标签库中常用标签:1. 代码演示 一. 概念 JSTL(JavaServer Pages Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库。它主要提供给JavaWeb开发人员一个标准通用的标签,开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度。 需要注意的是: jstl中需要获取值的地方一般都要配合EL表达式去使用。 jstl在js

巧克力布丁的博客 7414
上一篇: QT打印
下一篇: 一步步学Qt,第九天-Q”STL”与STL-再看C++
Qicz
博客等级 码龄16年 56粉丝 122原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值