C++中将vector转化为动态数组&实现快速排序

C/C++动态内存分配之用malloc和指针实现动态数组排序 /************************************************************************/ /*动态数组解决了静态数组对内存空间的耗用问题,同时由于其使用的是指针,所以 在多函数调用上快速、便捷。 用malloc和指针定义动态数组,其关键是要准确理解指针的含义和数组的操作手段。 此程序的功能是用动态内存分配的手段实现输入数组的排序。 阅读详情

STL中的vector相比传统的数组构造方法效率较低但使用起来更方便,尤其在动态数组方面,可以在不知道数组大小的情况下动态地创建所需要的vector,在C++中这是其他所有构造数组的方法都不具备的,但当需要使用vector时却发现只是遍历比较方便,而往往现成的算法形参都需要传入数组或者指向数组首元素的指针,这时就经常需要将vector转换为数组,所以写一个简单的vec2arr模板函数以后方便调用并通过一个快速排序算法的实现验证其便利性:

template<class elemType>
elemType* vec2arr(vector<elemType> vec)
{
	elemType* arr = new elemType [vec.size()];
	for (size_t i = 0; i < vec.size(); i++)
		arr[i] = vec[i];
	return arr;
}
template<class elemType>
void quickSort(elemType a[], int begin, int end)
{
	if (begin < end)
	{
		int i = begin, j = end;
		elemType key = a[i];
		while (i<j)
		{
			while (i<j&&a[j]>key)		j--;	//j向前找比key小的数,注意随时检查i<j
			if (i < j)		a[i++] = a[j];
			while (i < j&&a[i] < key)		i++;	 //i向后找比key大的数
			if (i < j)		a[j--] = a[i];
		}
		//将key赋值给i与j相遇的地方
		a[i] = key;
		//两侧递归
		quickSort(a, begin, i - 1);
		quickSort(a, i + 1, end);
	}
}

然后写一个main函数调用一下:

C++中sort函数的用法汇总 最近写题的时候总会在贪心算法里面用到C++函数sort函数排序的方法,故在此总结一下 sort函数本身是对一段连续的存贮单元的数据进行排序的函数,其排序的元素可以是数值,亦可以是一组数据(结构体),其算法比正常的冒泡排序法,选择排序法,希尔排序要简便,故对于算法的简化大有帮助 1.将一段数据按升序排列 #include&lt;cstdio&gt; #include&lt;algorithm&gt;... 阅读详情

相关推荐

C++ 向量 vector

向量 数组到向量 C/C++中,数组A[]中的元素[0,n)内的编号一一对应,有A[0],A[1],A[2],...,A[n-1];并且每一个元素均可由(非负)编号唯一指代,并且**可以直接访问**,A[i]的物理地址是A+i*s(s是单个元素暂用的空间量),也称作线性数组。 向量由数组抽象来,由一组元素按照线性次序封装,各个元素[0,n)内的秩(int ,c++对应iterator),元素类型不...

qq_16542771的博客 1405

C++ vector动态数组:原理、性能优化与竞赛实战指南

动态数组是编程中处理可变大小数据集合的基础数据结构,它通过连续内存块存储元素,支持高效的随机访问。其核心原理在于自动内存管理,当空间不足时执行扩容操作,这涉及新内存分配与元素搬迁。理解size、capacity与迭代器失效机制对编写健壮代码至关重要。在性能优化方面,合理使用reserve预分配空间、利用移动语义与noexcept关键字,能显著减少不必要的拷贝开销。这些技术广泛应用于算法竞赛、高性能计算和系统开发中,尤其在需要灵活存储、快速排序查找的场景下表现突出。本文聚焦C++ STL中的vector实现,

weixin_31742871的博客 248

DC-DC拓扑:从电感位置一眼识别Buck、Boost与Buck-Boost

本文详细解析了DC-DC拓扑中电感位置对识别Buck、Boost与Buck-Boost电路的关键作用。通过对比不同拓扑的电感连接特征,提供快速识别方法和设计要点,帮助工程师避免常见错误并优化电路性能。特别强调电感位置对输出质量和效率的影响,适合电源设计人员参考。

java2000.net 372

FPGA实战:从零构建eMMC控制器(Verilog篇)

本文详细介绍了如何使用Verilog从零构建FPGA上的eMMC控制器,涵盖eMMC接口基础、命令系统解析、关键模块设计及性能优化技巧。通过实战案例,帮助开发者掌握高速数据存储解决方案,提升嵌入式系统开发能力。

weixin_26802933的博客 296

Wezterm的安装和简单配置

希望 wezterm 的主题配色,保持和 powershell 默认配色一致,也就是 Compell 主题。目的是在频繁使用 wezterm 时,原本的根据颜色判断文件信息(尤其是WSL里的Linux下,文件和目录颜色)依然可以使用。wezterm 默认用 cmd.exe, 我是 win11,希望默认用 powershell。

baiyu33的博客 4264

武汉理工大学 python实验三

请编一个程序,用户在同一行内输入两个整数,代表头和脚的数量,编程计算笼中各有多少只鸡和兔(假设鸡和兔都正常,无残疾),如无解则输出`“Data Error!题目为:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?年前,《孙子算经》中记载一个有趣的问题:今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?有一座八层宝塔,每一层都有一些琉璃灯,每一层的灯数都是上一层的二倍,已知共有。编写一个宝塔上的琉璃灯的小程序,计算并输出每层各有多少盏琉璃灯。,如果有多个解,则分行输出,每行一个解;

2401_83472225的博客 5949

国产NAS哪家强?极空间&绿联&威联通&群晖对比

随着个人数据量暴增,传统网盘空间不足和下载速度慢问题愈发凸显。新势力NAS,作为数据管理领域的璀璨新星,正以其独特的互联网设计理念,引领家庭及小型办公用户向数据存储的新纪元。它不仅仅是一款产品,更是为初学者用户量身定制的贴心伙伴。其系统界面之简洁、操作流程之直观,让人一目了然,真正实现了“即插即用”的极致便捷。同时,新势力NAS在保持专业水准的同时,更提供了多样化的扩展性配置,轻松应对各种数据存储与管理需求,让家庭及小型办公场景下的数据管理变得前所未有的简单与高效。

专注大数据、云计算、人工智能、机器人领域技术传播 3641

Easy系列PLC远程IO模块的安装配置和地址访问(EtherCAT总线)

EtherCAT分布式时钟DC(SOEM源码解析)EtherCAT分布式时钟DC(SOEM源码解析)_soem dc同步-优快云博客文章浏览阅读1.2k次。分布式时钟(DC,Dsitributed Clock)可以使所有 EtherCAT设备使用相同的系统时间,从而控制各设备任务的同步执行。_soem dc同步1200PLC连接分布式IO组态编程应用(ES200SP固件版本不同解决方法)

RXXW_Dor的博客 171

【无人机项目实战】第三章:fast_planner工程解读(附C++代码)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、规划系统运行逻辑【业务部分】1.Fast_planner_node.cpp【程序入口】功能代码实现2.kino_replan_fsm.cpp【状态机转移】功能代码实现KinoReplanFSM::init()函数订阅目标点回调函数订阅里程计回调函数检查路径规划是否成功【重要】执行状态机FSM定时器回调函数【重要】判断目标点是否有障碍物或者是轨迹执行过程中是否有障碍物的回调函数3

qq_35635374的博客 1万+

刷机维修进阶教程-----adb禁用错了系统app导致无法开机 如何保数据无损恢复机型

在刷机维修过程中 。我们会遇到一些由于客户使用adb指令来禁用手机app而导致手机无法开机进入系统的故障机型。通常此类问题机型有好几种解决方法。但如果客户需要保数据来恢复机型。其实操作也是很简单的.还有类似误删除应用导致不开机等等如何保数据。  通过博文了解💝💝💝    1💝💝💝----adb禁用或者删除系统app导致无法开机的几种解决方法 2💝💝💝----如何保数据来无损恢复机型 3💝💝💝----其他保数据解决系统类故障无法开机的步骤解析

小马哥的专栏 1349

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

OV9734 DATASHEET,完整规格书

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

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

下一篇: ubuntu系统使用github上传文件到仓库
codingEMIPark
博客等级 码龄10年 0粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值