vector的几种初始化及赋值方式

简介: 转自:https://blog.csdn.net/yjunyu/article/details/77728410?locationNum=10&fps=1 vector的几种初始化及赋值方式:(1)不带参数的构...

转自:https://blog.csdn.net/yjunyu/article/details/77728410?locationNum=10&fps=1

 

vector的几种初始化及赋值方式:

(1)不带参数的构造函数初始化

//初始化一个size为0的vector
vector<int> abc;

(2)带参数的构造函数初始化

//初始化size,但每个元素值为默认值
vector<int> abc(10);    //初始化了10个默认值为0的元素
//初始化size,并且设置初始值
vector<int> cde(10,1);    //初始化了10个值为1的元素

(3)通过数组地址初始化

int a[5] = {1,2,3,4,5};
//通过数组a的地址初始化,注意地址是从0到5(左闭右开区间)
vector<int> b(a, a+5);

(4)通过同类型的vector初始化

vector<int> a(5,1);
//通过a初始化
vector<int> b(a);

(5)通过insert初始化

//insert初始化方式将同类型的迭代器对应的始末区间(左闭右开区间)内的值插入到vector中
vector<int> a(6,6);
vecot<int> b;
//将a[0]~a[2]插入到b中,b.size()由0变为3
b.insert(b.begin(), a.begin(), a.begin() + 3);

insert也可通过数组地址区间实现插入

int a[6] = {6,6,6,6,6,6};
vector<int> b;
//将a的所有元素插入到b中
b.insert(b.begin(), a, a+7);

此外,insert还可以插入m个值为n的元素

//在b开始位置处插入6个6
b.insert(b.begin(), 6, 6);

(6)通过copy函数赋值

vector<int> a(5,1);
int a1[5] = {2,2,2,2,2};
vector<int> b(10);

/*将a中元素全部拷贝到b开始的位置中,注意拷贝的区间为a.begin() ~ a.end()的左闭右开的区间*/
copy(a.begin(), a.end(), b.begin());

//拷贝区间也可以是数组地址构成的区间
copy(a1, a1+5, b.begin() + 5);

 

相关文章
|
C++ 索引
【C++STL基础入门】深入理解string类重新赋值(assign)与删除(erase)
【C++STL基础入门】深入理解string类重新赋值(assign)与删除(erase)
1825 1
|
6月前
|
人工智能 Linux API
OpenClaw Skill开发实战从入门到精通:阿里云/本地部署与免费国产大模型适配实操指南
OpenClaw的Skill插件体系与多Agent协同架构,让AI工具的定制化变得轻量化、平民化,2026年版本对跨平台部署与国产大模型的深度适配,更是降低了个人开发者与中小团队的使用门槛。从简单的RSS抓取Skill开发,到全平台的OpenClaw部署,再到阿里云百炼免费大模型的适配,整个流程无需复杂的底层开发,只需遵循固定的规范与步骤,即可快速搭建专属的AI工具体系。未来,随着OpenClaw社区的不断发展,更多的优质Skill将被开发与共享,AI Agent的应用场景也将进一步延伸至办公、研发、运营等各个领域。
2331 4
|
6月前
|
机器学习/深度学习 安全 数据安全/隐私保护
# Pyc怎么转Py?PyLingual 部署教程
PyLingual是一款基于深度学习的Python字节码(.pyc)反编译工具,专攻损坏、加密或混淆的现代pyc文件(支持3.6–3.13),弥补uncompyle6对新版本支持不足的短板。部署需Python 3.12+、Poetry及pyenv多版本环境,适合开发者救代码、安全人员分析恶意样本。(239字)
1102 2
|
JavaScript Java 关系型数据库
基于springboot的计算机在线考试管理系统
本系统基于Spring Boot、Java、Vue与MySQL,构建高效安全的在线考试管理平台,推动教育信息化发展。
|
存储 编译器 C语言
【c++丨STL】vector的使用
本文介绍了C++ STL中的`vector`容器,包括其基本概念、主要接口及其使用方法。`vector`是一种动态数组,能够根据需要自动调整大小,提供了丰富的操作接口,如增删查改等。文章详细解释了`vector`的构造函数、赋值运算符、容量接口、迭代器接口、元素访问接口以及一些常用的增删操作函数。最后,还展示了如何使用`vector`创建字符串数组,体现了`vector`在实际编程中的灵活性和实用性。
1105 5
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
1060 0
|
C语言
C语言循环结构详解:for、while、do while、break与continue
C语言循环结构详解:for、while、do while、break与continue
880 0
|
算法 C++ 容器
C++之vector容器操作(构造、赋值、扩容、插入、删除、交换、预留空间、遍历)
C++之vector容器操作(构造、赋值、扩容、插入、删除、交换、预留空间、遍历)
1493 0
|
存储 算法 Linux
深入理解Linux内存管理brk 和 sbrk 与以及使用C++ list实现内存分配器
深入理解Linux内存管理brk 和 sbrk 与以及使用C++ list实现内存分配器
1259 0
|
网络协议 网络安全
【网络安全】Wireshark过滤数据包&分析TCP三次握手(上)
【网络安全】Wireshark过滤数据包&分析TCP三次握手
1341 1