当前位置: 首页 > news >正文

opencv03-补充-vector的操作

opencv03-补充-vector的操作

参考:https://www.runoob.com/w3cnote/cpp-vector-container-analysis.html

构造方法(具体介绍看API文档)

class Student {public:private:string name;};int main() {vector<int>();vector<int> v1;vector<Student> v2; // 存放自定义类vector<string> v3;vector<vector<int> >;  //注意空格。这里相当于二维数组int a[n][n];vector<int> v5 = {1, 2, 3, 4, 5}; //列表初始化,注意使用的是花括号vector<string> v6 = {"hi", "my", "name", "is", "lee"};vector<int> v7(5, -1); //初始化为-1,-1,-1,-1,-1。第一个参数是数目,第二个参数是要初始化的值vector<string> v8(3, "hi");vector<int> v9(10); //默认初始化为0vector<int> v10(4); //默认初始化为空字符串return 0;
}

增加元素和访问元素

int main() {vector<int> v1;v1.push_back(2);v1.push_back(3);v1.push_back(4);// 使用索引访问元素for (int i = 0; i < v1.size(); i++) {cout << v1[i] << endl;//v1[i] = 100;//cout << v1[i] << endl;}/*reference at(int pos):返回pos位置元素的引用reference front():返回首元素的引用reference back():返回尾元素的引用iterator begin():返回向量头指针,指向第一个元素*/cout << ".................." << endl;cout << v1.at(2) << endl; // 返回pos位置元素的引用cout << v1.front() << endl; // 返回首元素的引用int a = v1.back(); //返回尾元素的引用cout << a << endl;// 使用迭代器访问元素vector<string> v6 = {"hi", "my", "name", "is", "lee"};for (vector<string>::iterator iter = v6.begin(); iter != v6.end(); iter++) {cout << *iter << endl;//下面两种方法都都可以检查迭代器是否为空cout << (*iter).empty() << endl;cout << iter->empty() << endl;}// 使用迭代器反向访问元素for (vector<string>::reverse_iterator iter = v6.rbegin(); iter != v6.rend(); iter++) {cout << *iter << endl;}return 0;
}

插入函数、大小函数、删除函数

#include <vector>
#include <array>using namespace std;
using namespace cv;int main() {std::vector<int> demo{1, 2};//第一种格式用法: 向量中迭代器指向元素前增加一个元素xdemo.insert(demo.begin() + 1, 3);//{1,3,2}//第二种格式用法: 向量中迭代器指向元素前增加n个相同的元素xdemo.insert(demo.end(), 2, 5);//{1,3,2,5,5}//第三种格式用法:向量中迭代器指向元素前插入另一个相同类型向量的[first,last)间的数据std::array<int, 3> test{7, 8, 9};demo.insert(demo.end(), test.begin(), test.end());//{1,3,2,5,5,7,8,9}//第四种格式用法:向量中迭代器指向元素前插入一个数组demo.insert(demo.end(), {10, 11});//{1,3,2,5,5,7,8,9,10,11}for (int i = 0; i < demo.size(); i++) {cout << demo[i] << " ";}// 输出结果为:1 3 2 5 5 8 9 10 11cout << "size:" << demo.size() << endl; //10cout << "capacity:" << demo.capacity() << endl; //10cout << "max_size:" << demo.max_size() << endl; //4611686018427387903cout << "empty:" << demo.empty() << endl; //0 判断向量是否为空,若为空,则向量中无元素//demo.clear(); // 清空向量中所有元素//cout << "empty:" << demo.empty() << endl; // 1demo.pop_back(); // 删除向量中最后一个元素for (int i = 0; i < demo.size(); i++) {cout << demo[i] << " ";}// 输出结果为:1 3 2 5 5 7 8 9 10cout << "---------------------------------" << endl;// iterator erase(iterator it):删除向量中迭代器指向元素demo.erase(demo.begin() + 1);for (int i = 0; i < demo.size(); i++) {cout << demo[i] << " ";}//输出结果为: 1 2 5 5 7 8 9 10cout << "---------------------------------" << endl;//iterator erase(iterator first,iterator last):删除向量中[first,last)中元素demo.erase(demo.begin() + 1, demo.end() - 2);for (int i = 0; i < demo.size(); i++) {cout << demo[i] << " ";}//输出结果为: 1 9 10return 0;
}

其他函数


int main() {std::vector<int> demo{12, 32, 23, 58, 52, 17, 28, 39, 10};// 1. 排序sort(demo.begin(), demo.end());for (int i = 0; i < demo.size(); i++) {cout << demo[i] << " ";}// 输出结果为: 10 12 17 23 28 32 39 52 58cout << endl;// 倒置reverse(demo.begin(), demo.end());for (int i = 0; i < demo.size(); i++) {cout << demo[i] << " ";}// 输出结果为: 58 52 39 32 28 23 17 12 10// void assign(int n,const T& x):设置向量中前n个元素的值为x,并将集合的size设置为:ndemo.assign(3, -1); //cout << "size:" << demo.size() << endl; //size:3for (int i = 0; i < demo.size(); i++) {cout << demo[i] << " ";}// 输出结果为: -1 -1 -1cout << endl;//void assign(const_iterator first,const_iterator last):向量中[first,last)中元素设置成当前向量元素std::vector<int> demo2{12, 32, 23, 58, 52, 17, 28, 39, 10};demo2.assign(demo.begin(), demo.end());for (int i = 0; i < demo2.size(); i++) {cout << demo2[i] << " ";}return 0;
}

相关文章:

opencv03-补充-vector的操作

opencv03-补充-vector的操作 参考&#xff1a;https://www.runoob.com/w3cnote/cpp-vector-container-analysis.html 构造方法(具体介绍看API文档) class Student {public:private:string name;};int main() {vector<int>();vector<int> v1;vector<Student&g…...

二叉树(C语言)

文章目录 1.树1.1概念1.2相关定义1.3 表示&#xff08;左孩子右兄弟&#xff09; 2.二叉树2.1概念2.2特殊的二叉树1. 满二叉树&#xff1a;2. 完全二叉树&#xff1a; 2.3二叉树的性质2.4练习 3.二叉树的存储结构1. 顺序存储2. 链式存储 4.完全二叉树的代码实现4.1堆的介绍1.堆…...

介绍下Django中的表单(forms)模块中的类forms.CharField

在Django中&#xff0c;forms.CharField() 是用于定义表单字段的类&#xff0c;它属于 Django 的表单&#xff08;forms&#xff09;模块。CharField 是用于处理字符型数据的表单字段类。它允许用户在表单中输入文本数据&#xff0c;并对该数据进行验证和处理。 forms.CharFie…...

元宇宙与数字孪生的异同?

随着数字孪生和元宇宙两个概念的爆火&#xff0c;人们对这两个“异物”也越来越好奇&#xff0c;这都是什么意思&#xff1f;听起来都差不多&#xff0c;是一样的嘛&#xff1f;本文就用最简单的话语带大家了解一下二者之间的异同。 首先来说数字孪生和元宇宙的概念 数字孪生是…...

智慧农业:科技赋能农村发展

智慧农业发展前景灿烂多彩&#xff0c;正为农业带来新的转型升级。随着科技的不断发展&#xff0c;数字化、自动化和智能化技术逐渐渗透进农业领域&#xff0c;为农民提供了更多高效便捷的农业管理方式。智慧农业通过物联网、大数据、人工智能等先进技术&#xff0c;实现对农田…...

x86架构ubuntu22下运行WILL模拟器dophin

0. 环境 i5实体机ubuntu22 1. 安装依赖 $ sudo apt install build-essential git cmake ffmpeg libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libevdev-dev libusb-1.0-0-dev libxrandr-dev libxi-dev libpangocairo-1.0-0 qt6-base-private-dev libblueto…...

Jvm的一些技巧

反编译字节码文件 找到对应的class文件所在的目录&#xff0c;使用javap -v -p 命令 查询运行中某个Java进程的Jvm参数 【案例】查询 MethodAreaDemo 这个类运行过程中&#xff0c;初始的元空间大小 MetaspaceSize jps 查询 Java 进程的进程ID 使用jinfo查看具体的参数&…...

8.docker仓库

文章目录 Docker仓库本地私有仓库Docker HarborDocker harbor部署访问页面创建用户下载私有仓库镜像harbor同步 Docker仓库 本地私有仓库 ##先下载 registry 镜像docker pull registry##修改配置文件&#xff0c;在 daemon.json 文件中添加私有镜像仓库地址vim /etc/dock…...

价值 1k 嵌入式面试题-计算机网络 OSI

开门见山 请讲下 OSI 各层协议的主要功能&#xff1f; 常见问题 回答不系统回答不确切无法和实际网络协议做关联对应 答题思路 OSI 代表了开放互联系统中信息从一台计算机的一个软件应用流到另一个计算机的另一个软件应用的参考模型 OSI 包含 7 层&#xff0c;每一层负责特…...

spring boot去除get post空格

1.用ControllerAdvice处理 package com.wangzs.handler;import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer; import org.springframewo…...

设计模式四:单例模式(Singleton)

单例模式&#xff0c;是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。 通过单例模式可以保证系统中&#xff0c;应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。 单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一…...

《水经注地图服务》发布的影像数据如何在OsgEarth中调用

OsgEarth 是一个用于OpenSceneGraph (OSG)的可扩展地形渲染工具包&#xff0c;它是一个开源、高性能、3D 图形工具包。 只需创建一个简单的 XML 文件&#xff0c;将其指向您的图像、高程和矢量数据&#xff0c;将其加载到您最喜欢的 OSG 应用程序中&#xff0c;然后开始&#…...

css滤镜:drop-shadow

一、用法 drop-shadow( offset-x offset-y blur-radius spread-radius color ) offset-x&#xff1a;此参数设置图像的水平偏移。正值将创建右侧的偏移量&#xff0c;负值将创建左侧的偏移量。offset-y&#xff1a;此参数设置图像的垂直偏移。正值创建到底部的偏移量&#xff…...

java ThreadLocal

private ThreadLocal threadLocal new ThreadLocal(); threadLocal.set(0); (int) threadLocal.get(); 上面三行代码分别是定义、赋值和取值。 介绍&#xff1a; 我们只需要实例化对象一次&#xff0c;并且也不需要知道它是被哪个线程实例化。虽然所有的线程都能访问到这个T…...

MySQL高级篇第6章(索引的数据结构)

文章目录 1、为什么使用索引2、索引及其优缺点3、InnoDB中索引的推演4、MyISAM中的索引方案5、索引的代价6、MySQL数据结构选择的合理性 1、为什么使用索引 假如给数据使用 二叉树 这样的数据结构进行存储&#xff0c;如下图所示 2、索引及其优缺点 3、InnoDB中索引的推演 4、M…...

Unity 性能优化三:动画模块、物理模块

目录 动画模块 Mecanim 模块 1.1 Animator active的数量 1.1.1 Culling Mode 1.1.2 Optimize Gameobject 1.1.3 Apply Root Motion 1.1.4 Compute Skinning 1.1.5 Animator Initialize 1.2 Legacy动画 物理模块 2.1 物理更新次数 2.1 减少不必要的Collision 2.5 A…...

延迟函数

Destory函数&#xff1a; public static void Destroy(Object obj, [DefaultValue("0.0F")] float t); Invoke函数&#xff1a; public void Invoke(string methodName, float time); 挂个空物体测试一下&#xff1a; public class DelayTest : MonoBehaviour {…...

IBM报告:2023数据泄露平均成本将达到445万美元

7月24日&#xff0c;IBM发布年度《数据泄露成本报告》显示&#xff0c;2023年全球数据泄露的平均成本达到445万美元&#xff0c;创该报告有史以来最高纪录&#xff0c;较过去3年均值增长了15&#xff05;。同一时期&#xff0c;检测安全漏洞和漏洞恶化带来的安全成本上升了42&a…...

20.3 HTML 表格

1. table表格 table标签是HTML中用来创建表格的元素. table标签通常包含以下子标签: - th标签: 表示表格的表头单元格(table header), 用于描述列的标题. - tr标签: 表示表格的行(table row). - td标签: 表示表格的单元格(table data), 通常位于tr标签内, 用于放置单元格中的…...

flutter项目运行时一直卡在Running Gradle task ‘assembleDebug‘解决办法

1.修改项目中的android/build.gradle&#xff0c;将google()&#xff0c;mavenCentral()替换为下面的代码 maven { url https://maven.aliyun.com/repository/central/ }maven { url https://maven.aliyun.com/repository/public/ }maven { url https://maven.aliyun.com/repos…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...