c++常见函数处理
1、clamp
clamp:区间限定函数
int64_t a = Clamp(a, MIN_VALUE, MAX_VALUE);
#include <iomanip>
#include <iostream>
#include <sstream>int main()
{std::cout << "no setw: [" << 42 << "]\n"<< "setw(6): [" << std::setw(6) << 42 << "]\n"<< "no setw, several elements: [" << 89 << 12 << 34 << "]\n"<< "setw(6), several elements: [" << 89 << std::setw(6) << 12 << 34 << "]\n";std::istringstream is("hello, world");char arr[10];is >> std::setw(6) >> arr;std::cout << "Input from \"" << is.str() << "\" with setw(6) gave \""<< arr << "\"\n";
}
2、difftime
计算秒维度的两个时间的差距
#include <stdio.h>
#include <time.h>int main(void)
{time_t now = time(0);struct tm beg = *localtime(&now);// set beg to the beginning of the monthbeg.tm_hour = 0,beg.tm_min = 0,beg.tm_sec = 0,beg.tm_mday = 1;double seconds = difftime(now, mktime(&beg));printf("%.f seconds have passed since the beginning of the month.\n", seconds);return 0;
}
3、std::stable_sort
按非降序对 [first, last] 范围内的元素进行排序。保证保留相等元素的顺序。
如果对于任何迭代器,它指向序列和任何非负整数 n,使得它 + n 是指向序列元素的有效迭代器,则序列相对于比较器 comp 进行排序,comp(*(it + n)、*it)(或 *(it + n) < *it) 的计算结果为 false。
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>struct Employee
{int age;std::string name; // Does not participate in comparisons
};bool operator<(const Employee& lhs, const Employee& rhs)
{return lhs.age < rhs.age;
}int main()
{std::vector<Employee> v{{108, "Zaphod"}, {32, "Arthur"}, {108, "Ford"}};std::stable_sort(v.begin(), v.end());for (const Employee& e : v)std::cout << e.age << ", " << e.name << '\n';
}
std::stable_sort(match_docs.begin(), match_docs.end(),[&ref_struct](const MatchDoc &lhs, const MatchDoc &rhs) {int64_t l_level = ref_struct.level_ref->get(lhs);int64_t r_level = ref_struct.level_ref->get(rhs);float l_score = ref_struct.score_ref->get(lhs);float r_score = ref_struct.score_ref->get(rhs);if (l_level == r_level) {return l_score >= r_score;} else {return l_level > r_level;}});
4、resize
重新指定vector的大小
#include <vector>
#include <iostream>void print(auto rem, const std::vector<int>& c)
{for (std::cout << rem; const int el : c)std::cout << el << ' ';std::cout << '\n';
}int main()
{std::vector<int> c = {1, 2, 3};print("The vector holds: ", c);c.resize(5);print("After resize up to 5: ", c);c.resize(2);print("After resize down to 2: ", c);c.resize(6, 4);print("After resize up to 6 (initializer = 4): ", c);
}
5、std::vector<T,Allocator>::insert
vector的插入函数
#include <iostream>
#include <iterator>
#include <vector>void print(int id, const std::vector<int>& container)
{std::cout << id << ". ";for (const int x : container)std::cout << x << ' ';std::cout << '\n';
}int main ()
{std::vector<int> c1(3, 100);print(1, c1);auto it = c1.begin();it = c1.insert(it, 200);print(2, c1);c1.insert(it, 2, 300);print(3, c1);// `it` no longer valid, get a new one:it = c1.begin();std::vector<int> c2(2, 400);c1.insert(std::next(it, 2), c2.begin(), c2.end());print(4, c1);int arr[] = {501, 502, 503};c1.insert(c1.begin(), arr, arr + std::size(arr));print(5, c1);c1.insert(c1.end(), {601, 602, 603});print(6, c1);
}
6、 std::stringstream
用来进行流的输入、输出和输入输出操作
std::stringstream sstream;
sstream.precision(4);
sstream << basic_score << ","<< basic_score<< ","<< qd_ctr_24h << "," << qd_ctr_7d << ","<< log_qd_clk_24h << "," << log_qd_clk_7d;
std::string features = sstream.str();
7、参考文献
理解 C++ 中的 Vector insert()
std::vector<T,Allocator>::resize - cppreference.com
difftime() function in C++ - GeeksforGeeks
std::time_t - cppreference.com
std::clamp - cppreference.com
std::stable_sort - cppreference.com
std::vector<T,Allocator>::insert - cppreference.com
clamp函数:区间限定函数-CSDN博客
C++编程语言中stringstream类介绍-CSDN博客
相关文章:
c++常见函数处理
1、clamp clamp:区间限定函数 int64_t a Clamp(a, MIN_VALUE, MAX_VALUE); #include <iomanip> #include <iostream> #include <sstream>int main() {std::cout << "no setw: [" << 42 << "]\n"<&l…...
MYsql第二次作业
目录 问题 解答 1.显示所有职工的基本信息。 2.查询所有职工所属部门的部门号,不显示重复的部门号。 3.求出所有职工的人数。 4.列出最高工和最低工资。 5.列出职工的平均工资和总工资。 6.创建一个只有职工号、姓名和参加工作的新表,名为工作日…...
SQLAlchemy 第三篇
使用insert语句 from sqlalchemy import Table, Column, Integer, String, MetaDatametadata_obj MetaData() user_table Table("user_account",metadata_obj,Column("id", Integer, primary_keyTrue),Column("name", String(255)),Column(&q…...
交互过程中影响信息质量好坏的因素
人机交互是指人与计算机之间的交流和互动,而人人交流是指人与人之间的交流和互动。在信息质量方面,人机交互通常更为准确和精确,而人人交流可能存在误解、模糊和歧义。 人机交互的信息传递往往通过明确的界面、符号和指令等方式进行。计算机可…...
服务器上配置jupyter,提示Invalid credentials如何解决
我是按照网上教程在服务器上安装的jupyter以及进行的密码配置,我利用 passwd()这个口令生成的转译密码是"argon...."。按照教程配置jupyter notebook配置文件里面的内容,登陆网页提示"Invalid credentials"。我谷歌得到的解答是&…...
Axure中动态面板使用及轮播图多种登录方式左侧导航栏之案列
🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《产品经理如何画泳道图&流程图》 ⛺️ 越努力 ,越幸运 目录 一、轮播图简介 1、什么是轮播图 2、轮播图有什么作用 3、轮播图有什么特点 4、轮播图适应范围 5、…...
大数据之旅-问题反思
1.谈谈你对MR执行流程各个阶段的理解(提示里面涉及到排序,快速排序或者归并排序知道两种实现形式)? 2.hadoop 1.0和hadoop 2.0明显的差异如何理解? hadoop2.0与hadoop1.0区别体现在在架构、性能、功能和组件方面&…...
系统级基础信号知识【Linux】
目录 一,什么是信号 进程面对信号常见的三种反应概述 二,产生信号 1.终端按键产生信号 signal 2. 进程异常产生信号 核心转储 3. 系统调用函数发送信号 kill raise abort 小结: 4. 由软件条件产生 alarm 5. 硬件异常产生信号…...
Excel单元格隐藏如何取消?
Excel工作表中的有些单元格隐藏了数据,如何取消隐藏行列呢?今天分享几个方法给大家 方法一: 选中隐藏的区域,点击右键,选择【取消隐藏】就可以了 方法二: 如果工作表中有多个地方有隐藏的话,…...
Visual Studio(VS)常用快捷键(最详细)
Visual Studio常用快捷键 一、生成:常用快捷键二、调式:常用快捷键三、编辑:常用快捷键四、文件:常用快捷键五、项目:常用快捷键六、重构:常用快捷键七、工具:常用快捷键八、视图:常…...
UDP特性之组播(多播)
UDP特性之组播 1. 组播的特点2. 设置主播属性2.1 发送端2.2 接收端 3. 组播通信流程3.1 发送端3.2 接收端 4. 通信代码 原文链接 在公司测试广播和多播有一点问题。。。 1. 组播的特点 组播也可以称之为多播这也是UDP的特性之一。组播是主机间一对多的通讯模式,是…...
ElasticSearch之cat shards API
命令样例如下: curl -X GET "https://localhost:9200/_cat/shards?vtrue&pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPHQBEs5*lo7F9"执行结果输出如下: index shard prirep state docs s…...
Thread-Per-Message设计模式
Thread-Per-Message是为每一个消息的处理开辟一个线程,以并发方式处理,提高系统整体的吞吐量。这种模式再日常开发中非常常见,为了避免线程的频繁创建和销毁,可以使用线程池来代替。 示例代码如下: public class Requ…...
运筹学经典问题(一):指派问题
问题描述 有 N N N个任务,需要 N N N个人去完成,每个人完成不同工作的效率不同(或者资源、收益等等),需要怎么分配使得整体的效率最高(成本最低等等)呢?这就是经典的指派问题啦&…...
产品经理之如何编写竞品分析(医疗HIS系统管理详细案例模板)
目录 一.项目周期 二.竞品分析的目的 三.竞品分析包含的维度 四.如何选择竞品 五.竞品画布 六.案例模板 一.项目周期 在整个项目的周期,产品经理所做的事情主要在项目前期做市场分析、需求调研等,下面一张图概况了整个项目周期产品经理、开发工程师…...
虚拟内存管理
虚拟内存管理 页面置换算法 功能和目标: 功能:当缺页中断发生,需要调入新的页面而内存已经满时,选择内存当中哪个物理页面被置换。目标:尽可能的减少页面的换进换出次数(即缺页中断的次数)。具…...
ssh时怎么同时指定其端口号,以及scp文件到远程的指定端口
如果想要通过 SSH 连接到指定端口的远程服务器,可以在 SSH 命令中使用 -p 或 --port 参数来指定端口号。以下是相应的用法: $ ssh -p <port> userhost其中, 是要连接的端口号,user 是远程服务器上的用户名,host…...
Redis过期淘汰策略
一. Redis过期淘汰策略 当Redis已用内存超过maxmemory限定时,触发主动清理策略。 主动清理策略在Redis 4.0之前一共实现了 6 种内存淘汰策略,在 4.0 之后,又增加了 2 种 策略,总共8种: 针对设置了过期时间的key做处理…...
微信小程序---自定义组件
目录 1.局部引用组件 2.全局引用组件 3.组件和页面的区别 4.自定义组件样式 5.properties属性 6.data和properties的区别 7.数据监听器 8.纯数据字段 9.自定义组件-组件的生命周期 lifetimes节点 10.组件所在的页面的生命周期 pageLifetimes节点 11.插槽 &#x…...
CGAL的最优传输曲线重构
1、介绍 此程序包实现了一种重建和简化二维点集的方法。输入是一组具有质量属性的二维点,可能受到噪声和离群值的干扰。输出是一组线段和孤立点,它们近似于输入点,如下图所示。质量属性与每个点的近似重要性有关。 左:输入点集受到…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
