c++初始化vector的几种方法

news/2024/11/19 10:19:32/

在C++中,vector是一种动态数组,可以在运行时自由添加、删除元素。初始化vector是创建一个vector对象并为其分配内存空间的过程。以下是C++中初始化vector的几种方法:

  • 默认构造函数

使用默认构造函数创建一个空的vector,如下所示:

std::vector<int> vec; // 创建空vector

这种方式可用于创建一个需要稍后填充的vector。

  • 带有初始元素数量和值的构造函数

使用带有初始元素数量和值的构造函数创建vector,如下所示:

std::vector<int> vec(5, 0); // 创建一个包含5个int元素,每个元素都是0的vector

此方式将会创建包含5个值为0的int类型元素的vector。

  • 带有初始元素数量的构造函数

使用带有初始元素数量的构造函数创建vector,如下所示:

std::vector<int> vec(8); // 创建一个包含8个未初始化int元素的vector

此方式将会创建一个包含8个未初始化int类型元素的vector。

  • 带有初始元素列表的构造函数

使用带有初始元素列表的构造函数创建vector ( 在C++中,使用{}来初始化vector是一种方便的方法,也称为列表初始化。),如下所示:

std::vector<int> vec = {1, 2, 3}; // 创建一个包含3个int元素,值分别为1、2、3的vector

此方式将会创建一个包含3个int类型元素,值分别为1、2、3的vector。

  • 复制或移动构造函数

使用复制或移动构造函数可以从一个已存在的vector创建新的vector。如下所示:

std::vector<int> vec1 = {1, 2, 3};
std::vector<int> vec2(vec1); // 创建一个与vec1的内容相同的vector
std::vector<int> vec3(std::move(vec2)); // 使用移动构造函数将vec2的所有资源转移给vec3

这种方式使用较少,但是在某些情况下可以使用它们来优化代码性能。

需要注意的是,在初始化vector时提供的初始值,需要与vector模板参数类型匹配或者能够隐式转换为vector模板参数类型。如果提供的初始值数量超过了vector预留的存储空间,则vector会自动分配更大的存储空间以容纳所有元素。


http://www.ppmy.cn/news/404535.html

相关文章

OCR文字识别软件哪个好?7大文字识别软件

由于从各种文档中提取文本的需求非常普遍&#xff0c;许多办公软件或公司都提供了OCR工具。在本文中&#xff0c;我们为您推出了一系列功能强大且易于使用的最佳 OCR 软件。 什么是 OCR 软件&#xff1f; OCR 软件是一种程序或工具&#xff0c;可以使用光学字符识别技术识别数…

Android集成百度OCR图片文字识别——总结

近期由于工作内容的需要&#xff0c;我要给项目集成一个图片文字识别功能&#xff0c;据说百度的不错&#xff0c;所以今天写一个关于百度OCR的集成总结&#xff0c;以便以后再次使用不用去看官方文档。 首先肯定是要在百度管理平台注册账号并登录&#xff0c;然后照常去添加应…

超轻量级中文OCR,支持竖排文字识别、ncnn推理,总模型仅17M

整理 | AI科技大本营 光学字符识别&#xff08;OCR&#xff09;技术已经得到了广泛应用。比如发票上用来识别关键字样&#xff0c;搜题App用来识别书本上的试题。 近期&#xff0c;这个叫做chineseocr_lite的OCR项目开源了&#xff0c;这是一个超轻量级中文ocr&#xff0c;支持…

百度文字识别(OCR)服务-傻瓜式

1.注册百度账号 进入百度开发者中心-百度智能云&#xff0c;直接按图操作&#xff0c;领取免费资源、创建应用。少说话&#xff0c;开撸 百度开发者中心-汇聚、开放、助力、共赢百度开发者中心是一个面向开发者的知识分享平台&#xff0c;专注于为开发者打造一个有温度的技术…

百度OCR文字识别在Android的应用(一)纯图版,超详细

百度OCR文字识别在Android的应用 最近OCR越来越火&#xff0c;大部分项目上面都会集成图像识别的功能&#xff0c;于是就入坑亲测了一下&#xff0c;过程中也遇到过一些困难&#xff0c;不过都解决了&#xff0c;下面是集成的一些经验与大家分享一下&#xff1a;用步骤来描述。…

ABBYY最新15版同时可用OCR文字识别和PDF编辑

ABBYY FineReader是一款超强大的OCR识别软件&#xff0c;ABBYY 轻松将任意文档转换成您需要的可编辑、引用、归档、搜索或分享的信息&#xff01;ABBYY FineReader 通过将纸质文档、PDF文件和数码照片中的文字转换成可编辑、可搜索的文件&#xff0c;让您的电脑处理更具效率&am…

Android NCNN识别文字(OCR)

效果 动态识别&#xff1a; 触发识别 资源 文章依赖开源库 GitHub - cmdbug/YOLOv5_NCNN: &#x1f345; Deploy ncnn on mobile phones. Support Android and iOS. 移动端ncnn部署&#xff0c;支持Android与iOS。&#x1f345; Deploy ncnn on mobile phones. Support Andr…

Tesseract Ocr文字识别实战(新版本,扩展手写文字识别)

目录 1.Tesseract Ocr文字识别 1.1 运行环境 1.2 python模块 1.3 配置tesseract运行文件 1.4 代码识别 2. 手写汉字识别 2.1 下载库 2.2 代码 1.Tesseract Ocr文字识别 前半部分原github地址&#xff1a;faceai/tesseractOCR.md at master vipstone/faceai GitHub 1…