蓝桥杯练习日常|c/c++竞赛常用库函数(下)

news2025/1/30 8:12:51

书接上回......蓝桥杯算法日常|c\c++常用竞赛函数总结备用-CSDN博客

目录

书接上回......https://blog.csdn.net/weixin_47011416/article/details/145290017

1、二分查找

2、lower_bound  uper_bound

3、memset()

函数原型

参数说明

返回值

常见用法

4、swap()

5、reverse()

6、unique()


1、二分查找

vector<int> numbers={1.3.7.9}; 

banary_search(numbers.begin(),numbers.end(),target);在已经排好序的序列中查找特定值,返回bool值。

2、lower_bound  uper_bound

vector<int> v={1,5,2,7,9,2,10};

sort(v.begin(),v.end());

for(auto &i:v)cout<<i<<' ';

cout<<'\n';

cout<<(lower_bound(v.begin(),v.end(),

8)-v.begin())<<'\n';

lower_bound(start地址,end地址,x)   返回从开始到结束左闭右开中第一个大于等于x的元素的地址。利用地址-首地址=下标得出下表的值。

upperbound(start地址,end地址,x)     返回左闭右开第一个大于x的元素的地址。

3、memset()

头文件<cstring>,用于将一段内存区域设置为指定的值。

函数原型

c复制代码

void *memset(void *s, int c, size_t n);

参数说明

  • s:指向要填充的内存区域的指针。
  • c:要设置的值,通常是一个无符号字符。
  • n:要被设置为该值的字节数。

返回值

该函数返回一个指向存储区 s 的指针。

常见用法

  • 初始化数组:可以使用 memset() 快速地将数组中的所有元素初始化为特定值,例如将一个整数数组清零或设置为某个特定的初始值。
  • 初始化结构体:对于结构体变量或结构体数组,可以使用 memset() 将其内存空间初始化为特定值,以便在后续使用中确保数据的一致性和安全性。
  • 清空内存区域:通过将 c 设置为0,memset() 可以用来清空一段内存区域,即将所有字节设置为0。这在释放内存之前清理数据结构或避免内存泄漏时特别有用。
#include<bits/stdc++.h>
int main(){
int a[5];
memset(a,0,sizeof(a));
for(int i=0;i<5;i++)cout<<a[i]<<'\n';
return 0;
}

4、swap()

  • 功能:用于交换两个对象的值。
  • 用法swap(a, b);其中 a 和 b 是要交换值的两个对象,它们必须是相同的类型。
  • 可以用于交换任意种类的变量,基本类型(整数,浮点)和自定义类型(结构体,类对象等)

5、reverse()

  • 功能:用于反转一个序列的元素,定义在 <algorithm> 头文件中。包括数组,向量,链表。
  • 语法template <class BidirectionalIterator> void reverse(BidirectionalIterator first, BidirectionalIterator last);
  • 参数first 和 last 用于指定要转换的数据范围 [first, last)
  • 注意事项:需要双向迭代器来工作,所以可以与 std::vectorstd::deque 和 std::list 之类的容器一起使用,但不能用于 std::set 和 std::map 这样的容器,因为它们的内部是有序的,不能做反转操作。

6、unique()

  • 用于除容器中相邻复元素的函数(!!必须相邻,如果不相邻,用sort排个序)
  • 用法:iterator unique(iterator it_1, iterator it_2);,表示对容器中 [it_1, it_2) 范围的元素进行去重,返回值是一个迭代器,指向去重后容器中不重复序列的最后一个元素的下一个元素。
  • 返回指向去重后范围的尾后迭代器

7、pow()

计算某数的n次方:

double base = 2.0; // 底数
int exponent = 3; // 指数
double result = pow(base, exponent); // 计算2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2284591.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LockSupport概述、阻塞方法park、唤醒方法unpark(thread)、解决的痛点、带来的面试题

目录 ①. 什么是LockSupport? ②. 阻塞方法 ③. 唤醒方法(注意这个permit最多只能为1) ④. LockSupport它的解决的痛点 ⑤. LockSupport 面试题目 ①. 什么是LockSupport? ①. 通过park()和unpark(thread)方法来实现阻塞和唤醒线程的操作 ②. LockSupport是一个线程阻塞…

活动回顾和预告|微软开发者社区 Code Without Barriers 上海站首场活动成功举办!

Code Without Barriers 上海活动回顾 Code Without Barriers&#xff1a;AI & DATA 深入探索人工智能与数据如何变革行业 2025年1月16日&#xff0c;微软开发者社区 Code Without Barriers &#xff08;CWB&#xff09;携手 She Rewires 她原力在大中华区的首场活动“AI &…

从0到1:C++ 开启游戏开发奇幻之旅(一)

目录 为什么选择 C 进行游戏开发 性能卓越 内存管理精细 跨平台兼容性强 搭建 C 游戏开发环境 集成开发环境&#xff08;IDE&#xff09; Visual Studio CLion 图形库 SDL&#xff08;Simple DirectMedia Layer&#xff09; SFML&#xff08;Simple and Fast Multim…

MongoDB平替数据库对比

背景 项目一直是与实时在线监测相关&#xff0c;特点数据量大&#xff0c;读写操作大&#xff0c;所以选用的是MongoDB。但按趋势来讲&#xff0c;需要有一款国产数据库可替代&#xff0c;实现信创要求。选型对比如下 1. IoTDB 这款是由清华大学主导的开源时序数据库&#x…

SCRM在企业私域流量与客户管理中的变革之路探索

内容概要 在当今数字化高速发展的时代&#xff0c;SCRM&#xff08;社交客户关系管理&#xff09;作为一种新的管理工具&#xff0c;正逐渐成为企业私域流量管理和客户关系维护的重要基石。它不仅仅是一种软件工具&#xff0c;更是一种整合客户数据和关系管理的全新思维方式。…

爱的魔力转圈圈,基于carsim与simulink模拟仰望u8原地调头

仰望U8原地转向的示意图如下&#xff0c;不动方向盘的情况下&#xff0c;车可以自己转圈圈&#xff1a; 原理也很简单&#xff0c;仰望u8是四轮驱动&#xff0c;四个轮子都单独由四个轮边电机驱动。主要我们将左右的车轮轮速控制成左右两边轮速相同&#xff0c;但是方向相反&am…

2025多目标优化创新路径汇总

多目标优化是当下非常热门且有前景的方向&#xff01;作为AI领域的核心技术之一&#xff0c;其专注于解决多个相互冲突的目标的协同优化问题&#xff0c;核心理念是寻找一组“不完美但均衡”的“帕累托最优解”。在实际中&#xff0c;几乎处处都有它的身影。 但随着需求场景的…

基于微信小程序的新闻资讯系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

vim如何解决‘’文件非法关闭后,遗留交换文件‘’的问题

过程描述&#xff1a; 由于我修改文件时&#xff08;一定得修改了文件&#xff0c;不做任何修改不会产生这个问题&#xff09;的非法关闭&#xff0c;比如直接关闭虚拟机&#xff0c;或者直接断开远程工具的远程连接&#xff0c;产生了以下遗留交换文件的问题&#xff1a; 点击…

vue3+elementPlus之后台管理系统(从0到1)(day4-完结)

面包屑 创建一个面包屑组件 将路由导入然后格式化map对象 key-value 将当前路由的key和value获取然后存入list数组中 遍历list数据&#xff0c;渲染内容 <!--BreadcrumbCom.vue--> <template><el-breadcrumb separator">"><el-breadcrum…

基于Flask的旅游系统的设计与实现

【Flask】基于Flask的旅游系统的设计与实现&#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统采用Python作为后端开发语言&#xff0c;结合前端Bootstrap框架&#xff0c;为用户提供了丰富…

【公因数匹配——暴力、(质)因数分解、哈希】

题目 暴力代码&#xff0c;Acwing 8/10&#xff0c;官网AC #include <bits/stdc.h> using namespace std; const int N 1e610; vector<int> nums[N]; int main() {ios::sync_with_stdio(0);cin.tie(0);int n;cin >> n;for(int i 1; i < n; i){int x;ci…

WPS数据分析000010

基于数据透视表的内容 一、排序 手动调动 二、筛选 三、值显示方式 四、值汇总依据 五、布局和选项 不显示分类汇总 合并居中带标签的单元格 空单元格显示 六、显示报表筛选页

RabbitMQ 架构分析

文章目录 前言一、RabbitMQ架构分析1、Broker2、Vhost3、Producer4、Messages5、Connections6、Channel7、Exchange7、Queue8、Consumer 二、消息路由机制1、Direct Exchange2、Topic Exchange3、Fanout Exchange4、Headers Exchange5、notice5.1、备用交换机&#xff08;Alter…

Spring--SpringMVC使用(接收和响应数据、RESTFul风格设计、其他扩展)

SpringMVC使用 二.SpringMVC接收数据2.1访问路径设置2.2接收参数1.param和json2.param接收数据3 路径 参数接收4.json参数接收 2.3接收cookie数据2.4接收请求头数据2.5原生api获取2.6共享域对象 三.SringMVC响应数据3.1返回json数据ResponseBodyRestController 3.2返回静态资源…

git Bash通过SSH key 登录github的详细步骤

1 问题 通过在windows 终端中的通过git登录github 不再是通过密码登录了&#xff0c;需要本地生成一个密钥&#xff0c;配置到gihub中才能使用 2 步骤 &#xff08;1&#xff09;首先配置用户名和邮箱 git config --global user.name "用户名"git config --global…

基于51单片机和ESP8266(01S)、LCD1602、DS1302、独立按键的WiFi时钟

目录 系列文章目录前言一、效果展示二、原理分析三、各模块代码1、延时2、定时器03、串口通信4、DS13025、LCD16026、独立按键 四、主函数总结 系列文章目录 前言 之前做了一个WiFi定时器时钟&#xff0c;用八位数码管进行显示&#xff0c;但是定时器时钟的精度较低&#xff0…

机器学习 ---逻辑回归

逻辑回归是属于机器学习里面的监督学习&#xff0c;它是以回归的思想来解决分类问题的一种非常经典的二分类分类器。由于其训练后的参数有较强的可解释性&#xff0c;在诸多领域中&#xff0c;逻辑回归通常用作 baseline 模型&#xff0c;以方便后期更好的挖掘业务相关信息或提…

拟合损失函数

文章目录 拟合损失函数一、线性拟合1.1 介绍1.2 代码可视化1.2.1 生成示例数据1.2.2 损失函数1.2.3 绘制三维图像1.2.4 绘制等高线1.2.5 损失函数关于斜率的函数 二、 多变量拟合2.1 介绍2.2 代码可视化2.2.1 生成示例数据2.2.2 损失函数2.2.3 绘制等高线 三、 多项式拟合3.1 介…

银行卡三要素验证接口:方便快捷地实现银行卡核验功能

银行卡三要素验证API&#xff1a;防止欺诈交易的有力武器 随着互联网的发展&#xff0c;电子支付方式也越来越普及。在支付过程中&#xff0c;银行卡是最常用的支付工具之一。然而&#xff0c;在一些支付场景中&#xff0c;需要对用户的银行卡信息进行验证&#xff0c;以确保支…