STL-vector,set,string,map,queue,priority_queue,stack,pair算法笔记

k8s集群部署私有镜像仓库 本文介绍了在Kubernetes集群中部署私有镜像仓库的完整方案。使用registry:2镜像创建Deployment,通过NodePort(30500)暴露服务,并采用hostPath(/data/registry)实现数据持久化。部署过程包括节点标记、YAML配置、资源创建及验证步骤,同时提供了Docker和Containerd两种环境下的详细使用方法,包括配置不信任私有仓库、镜像推送/拉取操作指南。该方案特别适合开发测试环境,为团队提供便捷的本地镜像管理能力。 阅读详情

STL:standard template library 标准模板库,封装了很多实用的容器。

(一)vector

vector是一个容器。是个类。底层数据结构是数组。
vector:向量,变长数组,即“长度根据需要而自动改变的数组”。
使用前提:

#include <vector>
using namespace std;

1、vector定义

vector<typename> name;

以上是长度可以根据需要变化的一位数组,typename可以是任何基本类型,例如int,double,char,结构体。也可以是个容器。

vector<vector<int> > name;//注意> >之间要有空格,因为C++11前的编译器可能会把它视为移位

以上可视为一个两个维度都可变长的二维数组。
注意与下面这个区分:

vector<int> vi[100]; 

这种写法的一维长度固定为100,另一维是变长的。
2、vector容器内元素访问
(1)下标 vi[index] 0~vi.size()-1
(2)迭代器 类似指针

vector<typename>::iterator it;

it是一个vector::iterator型的变量。

*it是it指向的地址中的元素的值。

vi[i]等价于*(vi.begin()+i),只有在vector和string中才允许使用vi.begin()+i这种写法。

begin()函数取首元素地址,end()函数取微元素地址的下一个地址,它作为迭代器莫为标志,不存储任何元素。是左闭右开的思维。
遍历:

for(vector<int>::iterator it=vi.begin();it!=vi.end();it++)
{
      printf("%d",*it);
}
``

```cpp
for(int i=0;i<vi.size();i++)
{
      printf("%d",vi[i]);
}

3、vector常用函数
(1)vi.push_back() 在末尾插入一个元素 O(1)
(2)vi.pop_back() 删除尾元素 O(1)
(3)vi.size() 获得数组中元素的个数 O(1)
(4)vi.clear() 清空数组中所有的元素 O(n)
(5)vi.insert(vi.begin()+2,-1) 在vi[2]处插入 O(n)
(6)vi.erase(vi.begin()+3) 删除vi[3]处的元素 O(n)
vi.erase(vi.begin()+1,vi.begin()+4) 删除区间元素vi[1~3] 注意左闭右开 O(n)

其他用法 摘自 链接
3.at 得到编号位置的数据
4.begin 得到数组头的指针
5.end 得到数组的最后一个单元+1的指针
6.front 得到数组头的引用。注意,与vi.begin()是指针不同,vi.front()是元素的值。
7.back 得到数组的最后一个单元的引用
8.max_size 得到vector最大可以是多大
9.capacity 当前vector分配的大小
10.size 当前使用数据的大小
11.resize 改变当前使用数据的大小,如果它比当前使用的大,则填充默认值
12.reserve 改变当前vector所分配空间的大小
13.erase 删除指针指向的数据项
14.clear 清空当前的vector
15.rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)
16.rend 将vector反转构的结束指针返回(其实就是原来的begin-1)
17.empty 判断vector是否为空
18.swap 与另一个vector交换数据

(二) set

set是集合,元素自动递增排序,且自动去重。
set中的元素是唯一的,如果需要处理不唯一的情况,需要使用multiset,另外unordered_set以散列代替set内部的红黑树(一种自平衡二叉查找树),可以处理只去重但不排序的需求。
1、定义

#include <set>
using namespace std;
set<typename> st;
set<int> a[100];

2、访问:只能用迭代器

set<typename>::iterator it;
for(it=st.begin();it!=st.end();it++)
{
     printf("%d",*it);
}

3、常用函数

st.insert(100);//插入并自动递增排序和去重,时间复杂度o(logN).
set<int>::iterator it=st.find(2);//返回对应值为2的迭代器,o(logN)。
st.erase(st.find(2));//删除,o(1)
st.erase(100);//删除,o(logN)
st.erase(it,st.end());
printf("%d\n",st.size());//元素个数,o(1)
st.clear();//清空,o(n)

st.begin()+3是错误的,set不能这样写,只有vector和string可以。

(三)string

#include <string>
using namespace std;
string str;
string str="abcd";
for(int i=0;i<str.length();i++)
{
     printf("%c",str[i]);
}
cin >> str;
cout << str;
printf("%s\n",str.c_str());
for(string::iterator it=str.begin();it!=str.end();it++)
{
     printf("%c",*it);
}
printf("%c",*(str.begin()+3));
str3=str1+str2;//拼接赋值给str3
str1+=str2;//将str2直接拼接到str1上
//比较大小,比较规则是字典序
if(str1<str2)
if(str1!=str2)
if(str1>=str2)
printf("%d %d\n",str.length(),str.size());//size()与length()完全等同,遇到空字符不会被截断,可以返回字符串真实长度
str.insert(3,str2);//往str[3]处插入str2
str.insert(str.begin()+3,str2.begin(),str2.end());//[it2,it3)左闭右开
str.erase(str.begin()+4);
str.erase(str.begin()+2,str.end()-1);//左闭右开
str.erase(3,2);//删除从3号位开始的2个字符
str.clear();
cout << str.substr(0,5) << endl;//返回从pos号位开始、长度为length的子串
if(string::npos==-1) cout << "666";//string::npos是个常数等于-1或者4294967295,用以作为find函数失配时的返回值
//当str2是str的子串时,返回其在str中第一次出现的位置,如果不是则返回string::npos.
if(str.find(str2)!=string::npos)  cout << str.find(str2);
//从str的pos位开始匹配str2,返回值同上,时间复杂度0(mn)
if(str.find(str2,7)!=string::npos)  cout << str.find(str2,7);
str.replace(pos,len,str2);//把str从pos号位开始长度为len的子串替换为str2
str.replace(it1,it2,str2);//把str的迭代器[it1,it2)范围的子串替换为str2

注意区分:

size()、length()是c++中string的类的方法,只有string类的对象才可以用该方法,而字符串数组不可用,而strlen、strcpy等源于C语言的字符串处理函数库,需要include<string.h>,同时也只有字符串数组才可以用
size()与length()完全等同,遇到空字符不会被截断,可以返回字符串真实长度
strlen(),源于C语言,遇到空字符会截断,从而无法返回字符串真实长度

int main()
{
	string name="babababa";
	cout<<name.length()<<endl;
	cout<<name.size()<<endl;
	
	char mail[100]="haha";
	cout<<strlen(mail)<<endl;
	
	char *psd;
	psd="lalala";
	cout<<strlen(psd)<<endl;

    return 0;
}

(四) map

map译为映射,可以将任何基本类型映射到任何基本类型,包括STL容器。
映射前类型:键key;映射后类型:值value.
map底层是红黑树,会以键从小到大的顺序自动排序
map中的键(第一个参数)是唯一的;如果一个键需要对应多个值,就用multimap;r如果只映射而不按key排序,则用unordered_map,它以散列代替红黑树。
如果是int型映射到int型,就相当于是普通的int型数组。
如果是字符串映射到整形,必须使用string而不能用char数组。

#include <map>
using namespace std;
map<typename1,typename2> mp;
map<string,int> mp;
map<set<int>,string> mp;

map<char,int> mp;
mp['c']=20;

for(map<char,int>::iterator it=mp.begin();it!=mp.end();it++)
{
      printf("%c %d\n",it->first,it->second);
}
printf("%d\n",mp.size());
mp.clear();

(五)queue

队列,先进先出的容器,只能通过front()来访问队首元素,或通过back()来访问队尾元素。元素入队队尾,出队队首。

#include <queue>
using namespace std;
queue<typename>  name;
queue<int> q;
for(int i=1;i<=5;i++)
{
      q.push(i);
}
printf("%d %d\n",q.front());
for(int i=1;i<=3;i++)
{
      q.pop();
}
if(q.empty()==true) printf("empty\n");
printf("%d\n",q.size());

使用front()和pop()函数前,必须用empty()判断队列是否为空。
还有两种队列:
双端队列:deque 首尾皆可插入和删除;
优先队列:priority_queue 使用堆实现的默认将当前队列最大元素置于队首的容器。

(六)priority_queue

优先队列,底层是用堆实现的。
队首元素一定是当前队列中优先级最高的那一个。可以在任何时刻往优先队列里加入元素,但是堆会随时调整结构,使得每次的队首元素都是优先级最大的。
top()可获得队首元素,即堆顶元素;pop()令队首(堆顶)元素出队;

#include <queue>
using namespace std;
priority_queue<int> q;
q.push(3);
printf("%d\n",q.top());
q.pop();
if(q.empty()==true)  printf("empty\n");
printf("%d\n",q.size());

如何定义优先队列内元素的优先级是运用好优先队列的关键。
(1)对于int,double,char等基本数据类型,优先队列对它们的优先级设置一般是数字大的优先级越高,因此队首元素就是优先队列内元素最大的那个;如果是char型,则是字典序最大的。

priority_queue<int> q;//与第二行的定义等价
priority_queue<int,vector<int>,less<int> > q;//数字大的优先级越大
priority_queue<int,vector<int>,greater<int> > q;//数字小的优先级越大

(2)结构体的优先级设置
按照水果的价格高的为优先级高,需要重载小于号“<”,注意重载大于号会编译错误。

struct fruit{
    string name;
    int price;
    friend bool operator < (fruit f1, fruit f2){
        return f1.price < f2.price;
    }
};

如果要以价格低的水果为优先级高,那么只需要把return中的小于号改为大于号。
注意:此处对于小于号的重载和排序函数sort中的cmp函数有些相似,不过效果看上去似乎是“相反”的。在排序中,如果“return f1.price < f2.price”,那么价格是从高到低排序,但是在优先队列中却是把价格低的放在队首。原因在于,优先队列本身默认的规则就是优先级高的放在队首,因此把小于号重载为大于号的功能的时候只是把这个规则反向了一下。不妨直接记住。
也可以这样定义:

struct fruit{
   string name;
   int price;
}f1,f2.f3;
struct cmp{
   bool operator()(fruit f1,fruit f2){
      return f1.price > f2.price;
   }
};
priority_queue<fruit, vector<fruit>, cmp> q;

如果结构体内的数据庞大,例如出现了字符串或数组,建议使用引用来提高效率,此时比较类的参数中需要加上“const”和“&”

friend bool operator < (const fruit &f1, const fruit &f2){
        return f1.price < f2.price;
    }

(七) stack

栈,后进先出。

#include <stack>
stack<typename> name;
stack<int> st;
for(int i=1;i<=5;i++)
{
     st.push(i);
}
printf("%d\n",st.top());
st.pop();
if(st.empty()==true) printf("empty\n");
printf("%d\n",st.size());

如果用普通的函数来递归,一旦递归层数过深,则会导致程序运行崩溃。如果用栈来模拟递归算法的实现,则可以避免。

(八)pair

当想要将两个元素绑在一起作为一个合成元素、又不想因此定义结构体时,使用pair可以很方便地作为一个替代品。也就是说,pair实际上可以看成一个内部有两个元素的结构体,且这两个元素的类型是可以指定的。如下所示:

struct pair{
    typename1 first;
    typename2 second;
};

由于map的内部实现中涉及pair,因此添加map头文件时会自动添加utility头文件,所以可以偷懒直接添加map即可。

定义:

pair<typename1, typename2> name;
pair<string, int> p;
pair<string, int> p("haha",5);//定义并初始化

临时创建:

p=pair<string, int> ("haha", 5);
或
p=make_pair("haha",5);//自带的函数

访问:

pair<string, int> p;
p.first="haha";
p.second=5;
cout << p.first << p.second << endl;

比较操作数:
可以直接使用 ==、!=、<、>、<=、>=比较大小。
规则是先以first的大小作为标准,只有当first相等时才去判别second的大小。

if(p1<p3) printf("p1<p3\n");

常见用途:
(1)用来代替二元结构体及其构造函数,可以节省编码时间。
(2)作为map的键值对来进行插入,如下:

map<string,int> mp;
mp.insert(make_pair("haha",5));
mp.insert(pair<string,int>("haha",10));
for(map<string,int>::iterator it = mp.begin();it!=mp.end();it++)
{
     cout << it->first << " " << it->second << endl;
}
Image Sensor常见分辨率下HTS,VTS设置 image sensor,HTS,VTS 阅读详情

相关推荐

基于Python大数据的智能交通分析系统

该系统能够实时监测交通状况,分析交通流量,预测交通趋势,为交通管理部门提供决策支持,帮助缓解交通拥堵,提高交通运行效率,减少交通事故发生率,改善市民出行体验。它能够为交通管理部门提供决策支持,帮助缓解交通拥堵,提高交通运行效率,减少交通事故发生率,改善市民出行体验,促进交通产业的健康发展。数据采集层:通过传感器、GPS设备、交通摄像头等数据源,实时采集交通数据,如车辆速度、位置、道路拥堵情况等。数据分析层:运用统计学方法、机器学习算法等,对处理后的数据进行深入分析,挖掘交通规律,预测交通趋势。

qq3828614760的博客 2969

c++标准库stl 的常见函数

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

haocoming的博客 941

Dify视觉模型节点避坑指南:我用Qwen2.5-VL做OCR识别时踩过的3个坑(及解决方案)

本文分享了使用Dify平台和Qwen2.5-VL视觉模型进行OCR票据识别时遇到的三个常见问题及解决方案,包括文件变量传递、结构化输出和条件分支判断失效。通过实战经验,帮助开发者优化多模态模型在财务自动化中的应用,提升OCR识别精度和效率。

weixin_29284885的博客 401

c++ STL常用容器使用(vector、deque、stack、queue、list、set、map等)

文章目录1、vector 使用2、deque 双向数组3、stack、queue(栈,队列)4、list 链表~ 1、vector 使用 动态数组,也叫可变数组,容器的空间是动态增长的,当空间不足时,申请更大一块空间,让后将原数据拷贝到新空间中,并释放原空间 1.1、初始化操作 int arr[] = {1,3,2,5}; // 1、方式一(初始化) vector<int> v1; // 容器尾部插入数据 v1.push_back(1);

weixin_45715405的博客 1713

深入瑞芯微SDK:手把手解析Uboot、Kernel到Rootfs的镜像生成与烧录

本文深入解析瑞芯微SDK中从Uboot、Kernel到Rootfs的镜像生成与烧录全流程,揭示编译背后的技术细节。通过详细分析SDK架构、镜像生成流水线、分区表定制、Rootfs构建及烧录科学,帮助开发者从会编译进阶到懂原理,掌握系统级开发的关键技术。

weixin_29193359的博客 269

从LLaMA到LLaMA-MoE:轻量级混合专家模型构建与实战指南

混合专家(Mixture-of-Experts, MoE)是一种先进的神经网络架构,其核心原理是通过门控网络动态地为不同输入选择不同的专家子网络进行计算,从而实现模型容量的指数级扩展,同时保持推理时的计算量基本不变。这种稀疏激活的特性赋予了MoE极高的技术价值,使其成为解决大模型训练与推理成本矛盾的关键技术之一,在自然语言处理、多模态学习等场景中展现出巨大潜力。本文聚焦于**LLaMA-MoE**这一具体实践,深入探讨了如何基于成熟的稠密模型(如LLaMA),通过**专家构建**与**持续预训练**两大关键

weixin_28730549的博客 564

[杂乱笔记]C++标准模板库(STL)的几个常见容器用法(set、vector、queue、stack、map、pair、priority_queue、string)

一、vector的常见用法详解 vector翻译为向量,一般叫变长数组,也就是长度根据需要而自动改变的数组。 经常用到vector的情况: ①对于只用普通数组超内存的情况,用vector就让问题解决便捷很多了。 ②对于结点数太多的图,无法运用邻接矩阵,又害怕使用指针实现邻接表的方式储存图的读者,vector就非常友好,写法非常简洁。1、vector的定义:vector<typename&g...

IT博客-wusheng_z 1356

大数据利器Hadoop:从基础到实战,一篇文章掌握大数据处理精髓!

在当今大数据时代,数据量的爆炸式增长对企业和技术提出了前所未有的挑战。如何高效地存储、处理和分析这些庞大的数据集,成为了亟待解决的问题。Hadoop作为一种分布式计算框架,应运而生,为大数据处理提供了有效的解决方案。Hadoop是一个由Apache软件基金会维护的开源项目,它基于Google的分布式文件系统(Google File System,GFS)和MapReduce计算模型设计。Hadoop的主要目标是处理大规模数据集,它可以在普通硬件集群上运行,从而降低了大数据处理的成本。

邓邓子的博客 8275

C++标准库(PAT算法笔记)

文章目录C++标准库 (PAT算法笔记)1. Vecotr 变长数组1.1 vector定义1.2 vector容器内元素的访问1.3 vector常用函数1.4 vector常见用途2. Set 集合2.1 set的定义2.2 set容器内元素的访问2.3 set常用函数2.4 set常见用途3. String3.1 string的定义3.2 string中内容的访问3.3 string常用函...

_BANA的博客 2002

STM32入门教程:智能马桶盖控制

通过编写相应的代码,您可以根据需要实现其他功能,例如座圈温度调节和液晶显示屏显示等。初始化配置 首先,使用STM32CubeMX创建一个新的工程,并选择您所使用的STM32单片机型号。智能马桶盖是一种集成了多种功能的智能家居设备,通过控制芯片来实现自动冲水、座圈加热、座圈温度调节等功能。在本教程中,我们将使用STM32系列单片机来控制智能马桶盖的各个功能。以上代码演示了如何通过STM32的GPIO控制引脚来控制智能马桶盖的冲水和座圈加热功能。写代码 接下来,我们将通过编写代码来控制智能马桶盖的各个功能。

2401_85258012的博客 657

YOLOv5入门实践(1)——手把手带你环境配置搭建

YOLOv5入门实践第一步,手把手带你配置环境

路人贾的博客 2万+

C++之STL容器详解(包含十种常用容器)

C++的stl是提高编写效率的一个利器,是算法类竞赛必不可少的工具,本篇博客将详细总结C++STL的各种容器及其常用方法

2203_75327677的博客 4万+

工业仪表读数识别:YOLO目标检测 + OCR混合方案实战

仪表整体(meter):粗定位整只仪表,用于快速裁剪、排除背景干扰表盘区域(dial):精确的圆形/方形表盘区域,用于后续矫正和读数数字区域(display)/指针(pointer):数显表定位数码管区域,指针表可辅助定位指针为什么要分三级?因为现场仪表安装角度、距离、光照差异极大。先粗检再精检,比一步到位的准确率高很多,也方便后续做透视变换。工业仪表读数识别,技术路线的选择比算法精度更重要。选对了路线,事半功倍;选错了,怎么调都达不到验收标准。几条落地建议:指针表优先传统算法。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 95

C++ STL详解超全总结(快速入门STL)

C++STL合集,包含vector,stack,queue,map,set,array,tuple,deque,priority_queue等诸多内容,全文上万字。

行码棋 30万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C++ STL常见容器

1.vector(数组) 1.1 介绍 vector为可变长数组(动态数组),定义的vector数组可以随时添加数值和删除元素。 头文件 #include < vector > 初始化: //初始化 //方式一:初始化一维可变长数组 vector<int>num; //定义了一个名为num的存int数据的一维数组 vector<double>num;//定义了一个名为num的存double数据的一维数组 vector<node>num;//no

梦心之魂的博客 2万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

STL算法中常用知识点总结

STL 作为一个封装良好,性能合格的 C++ 标准库,在算法竞赛中运用极其常见。灵活且正确使用 STL 可以节省非常多解题时间,这一点不仅是由于可以直接调用,还是因为它封装良好,可以让代码的可读性变高,解题思路更清晰,调试过程 往往 更顺利。不过 STL 毕竟使用了很多复杂的结构来实现丰富的功能,它的效率往往是比不上自己手搓针对特定题目的数据结构与算法的。因此,STL 的使用相当于使用更长的运行时间换取更高的编程效率。因此,在实际比赛中要权衡 STL 的利弊,不过这一点就得靠经验了。

qq_52482640的博客 1417

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

C++ STL容器大全 string vector stack queue list priority_queue set map pair

C++STL容器大全

weixin_59881920的博客 892

C++ STL总结 - 基于算法竞赛

本文总结了算法比赛中使用的STL容器,包含各种容器的介绍,声明,方法函数,注意点等等,代码配有详细注释,赶紧点赞收藏,学习起来吧!!

yourgrandfather_的博客 2258

初学者:《C++ STL容器入门:手把手教你使用常用容器》

c++常用容器讲解vector string queue, priority_queue, stack set, map, multiset, multimap unordered_set,  unordered_map,   unordered_multiset,  unordered_multimap

2401_86619696的博客 1590

C++标准模板库STL【最全总结】【收藏方便使用】

由于平时在使用stl时,经常会忘记一些函数使用方法,在此做总结,方便日后查看✅

赵小轩的博客 1万+

C++和Java中STL库入门

C++和Java中STL库入门STL简介为什么使用STLSTL基本概念STL使用前的初始化C++里STL基本容器详解 STL简介 STL简称标准模版库,被容纳在C++标准程序库,包含了许多基本数据结构和基本算法,使程序员写起来得心应手。 为什么使用STL 在学习数据结构的时候,在程序中会使用到堆、栈、队列、链表等一些基本的算法,而学习数据结构的时候,这些基本算法写起来十分繁琐,如果不想写这些,那么就可以考虑一下STL了。 但是不要太过于依赖STL! STL基本概念 要使用STL,需要理解以下几个基本概念:

狙击美佐的博客 3691

C++ STL vector queue priority_queue stack set map 大总结

C++ STL vector queue priority_queue stack set map 大总结 其实对这些容器,主要有两大类: 顺序容器包括vector、deque、list、forward_list、array、string 关联容器 map - set 总的来说,vector 和 set map 都挺像,支持迭代器访问 关于插入 vector 插入使用push_back()...

solicucu 527

C++ STL基本用法

不支持 lower_bound()/upper_bound(), 迭代器的++, --begin()/end() ++, -- 返回前驱和后驱,时间复杂度 O(logn)lower_bound(x) 返回大于等于x的最小的数的迭代器。upper_bound(x) 返回大于x的最小的数的迭代器。erase() 输入的参数是pair或者迭代器。和上面类似,增删查改的时间复杂度是O(1)insert() 插入的数是一个pair。count() 返回某一个数的个数。set(k, v) 把第k位变成v。

houhuan521的博客 1724

STL总结与一些练习题

目录vectorstringset 集合容器multiset 多重集合容器map 映照容器multimap 多重映照容器deque 双端队列容器list 双向链表容器bitset 位集合容器stack 堆栈容器queue 队列容器priority_queue 优先队列容器 本文参考资料: 国际大学生程序设计竞赛指南 STL(Standard Template Library) 提供三种类型的组件:容器、迭代器和算法,它们都支持泛型程序设计标准 泛型编程(Generic Programming)最初提出时的动

人工智能方向,计算机视觉(https://github.com/chenshunpeng) 2296

C++ STL

STL

记录学习内容 1724

STL模板类

文章目录一、algorithm头文件1.count() :统计给定值或字符的个数,例如字符串中统计某个字符的个数。2.find() : 返回第一个值等价于给定值的元素,记住返回的是指针或游标迭代子,而不是索引。3.search() : 在范围A中查找第一个与范围B等价的子范围的位置。例如查找子字符串功能。4.swap() : 交换两个对象的值,用处很广,无论交换两个整型,还是两个字符数组,非常实用...

yleave的博客 2682
上一篇: 谷歌浏览器滚动截屏
下一篇: CCF 202012-2 期末预测之最佳阈值 C++
cloudless_sky
博客等级 码龄8年 106粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值