C++提高编程-STL

news/2025/2/27 7:39:15/文章来源:https://www.cnblogs.com/gcfer/p/18559146

STL初识

image
image
image
image
image

容器算法迭代器初识

vector存放内置数据类型

#include<vector>
#include<algorithm>void myPrint(int x)
{cout << x << ' ';
}void test01()
{//创建vector容器vector<int>v;//向容器中插入数据v.push_back(10);v.push_back(20);v.push_back(30);v.push_back(40);//通过迭代器访问数据for (vector<int>::iterator it = v.begin(); it < v.end(); it++){cout << *it << endl;}//通过算法访问for_each(v.begin(), v.end(), myPrint);
}

vector存放自定义的数据类型

//vector存放自定义类型
class Person
{
public:Person(string name, int age){this->m_Age = age;this->m_Name = name;}void showPerson(){cout << this->m_Name << ' ' << this->m_Age << endl;}string m_Name;int m_Age;
};void myPrint(Person x)
{x.showPerson();
}void test01()
{//创建vector容器vector<Person>v;//创建对象Person p1("aaa", 10);Person p2("bbb", 20);Person p3("ccc", 30);Person p4("ddd", 40);Person p5("eee", 50);//向容器中插入数据v.push_back(p1);v.push_back(p2);v.push_back(p3);v.push_back(p4);v.push_back(p5);//通过迭代器访问数据for (vector<Person>::iterator it = v.begin(); it < v.end(); it++){it->showPerson();}//通过算法访问for_each(v.begin(), v.end(), myPrint);
}

string容器

image

string的构造函数

image
示例代码

//1.默认构造
string s1;//2.利用c语言的字符串初始化
const char* str = "hello,word";
string s2(str);
cout << s2 << endl;//3.拷贝构造
string s3(s2);
cout << s3 << endl;//4.字符重复,初始化字符串
string s4(10, 'a');
cout << s4 << endl;

string的赋值操作

image

void test01()
{const char* ch = "hello world";//1.将c语言的字符串给string,以下两者等价string st1;st1 = "hello world";st1 = ch;//2.把字符串赋值string st2;st2 = st1;cout << st2 << endl;//3.将单个字符赋值string st3;st3 = 'a';cout << st3 << endl;//4.通过assign赋常量string st4;st4.assign("hello,C++");cout << st4 << endl;//4.通过assign,把前n个字符赋值string st5;st5.assign("hello C++", 6);cout << st5 << endl;//5.通过assign把字符串对象给string st6;st6 = st5;cout << st6 << endl;//6.通过assign把n个相同字符赋个stringstring st7;st7.assign(10, 'a');cout << st7 << endl;
}

string的拼接操作

image

void test01()
{const char* ch = "hello world,";string st;//1.重载+=符号,后面可以跟常量字符串/字符数组,字符,以及字符串st += ch;st += " I am ";st += 'a'; st += ' ';string st2 = "Chinese";st += st2;cout << st << endl;//2.采用append函数,可以跟常量字符串/字符数组,数组的前n个字符,字符串以及从特定位置的n个字符开始拼接string s;s.append(ch);s.append(" I am ");s.append("abcde", 1);string s2 = "I am a Chinese";s.append(s2,6,8);cout << s << endl;}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MMORPG技能管线设计经验总结

导语: 表现丰富、机制多变的技能作为MMORPG游戏战斗体验的核心组成部分,是吸引玩家的一大亮点,本文总结了在MMORPG技能系统设计上的一些经验,供大家参考。1、设计思路早期的MMORPG手游中,技能的表现相对简单,因此技能流程被分为几个固定的阶段(如准备阶段、攻击阶段、受…

Sickos1.1 详细靶机思路 实操笔记

Sickos1.1 详细靶机思路 实操笔记 免责声明 本博客提供的所有信息仅供学习和研究目的,旨在提高读者的网络安全意识和技术能力。请在合法合规的前提下使用本文中提供的任何技术、方法或工具。如果您选择使用本博客中的任何信息进行非法活动,您将独自承担全部法律责任。本博客…

cornerstone中raft_server源码解析

1.概述 cornerstone中核心即为raft_server的实现。 在raft里面有follower,leader,candidate三种角色,且角色身份还可以相互切换。 写三个类follower,leader,candidate显得没必要,因为三个类可以共享许多成员变量,如term,log_store等等。因此在cornerstone中抽象出raft_…

封装、权限修饰符、封装的案例

1.面向对象的三大特征其中继承和多态放在后面讲,今天只聊封装 . 2.封装的介绍举例如果要我们处理一堆学生的数据,我们可以直接设计一个类,将我们需要处理的数据封装到类当中变为成员变量,然后我们直接创建两个对象,再将数据封装到对象中即可 . 3.封装的好处 1.便于我们维护…

【Atcoder训练记录】AtCoder Beginner Contest 381

训练情况赛后反思 简单题A题做红温了,怒吃 6 罚时,C题双指针其实差不多想出来了,但是对于判断字符串合法其实可以只判断两个端点,不需要全部遍历,中途还想了二分做法(?),然而写到最后发现并没有二分单调性。 A题 记得判断字符串的长度必须是奇数,\(1 \sim \frac{n+1}…

putty中设置白色背景、黑色字体

001、 002、 003、 前景色全部改为0 004、 背景色全部改为255 。

【牛客训练记录】牛客小白月赛105

训练情况赛后反思 看十佳歌手去了,比较晚回来,只开了A题,B题不看数据范围直接一眼丁真直接WA了一发 A题 两个数相乘进行比较,再判断即可。 #include <bits/stdc++.h> #define int long long #define endl \nusing namespace std;void solve(){int a1,b1,a2,b2; cin&g…

Win 11史诗升级,终于能完美兼容安卓生态

曾几何时,Windows与安卓设备之间的壁垒让人头疼不已。如今,微软再一次引领变革!Windows 11迎来了“史诗级”升级,安卓生态的完美兼容终于成为现实。这次升级将如何改变我们的使用体验? Win 11 的安卓兼容性升级具体实现了哪些突破?它对用户工作和娱乐方式有怎样的深远影响…

MPU6050 原理及驱动

MPU6050 姿态传感器原理分析MPU6050 是一款由 InvenSense 设计的低成本紧凑型 6 轴姿态传感器。该传感器可提供三轴角速度、三轴加速度和芯片温度数据。主设备可通过 I2C 与之进行通讯,从而获取并解算测量数据。MPU6050 技术参数3 轴陀螺仪(16位):量程范围为 250、500、100…

1.11--01:查找最接近的元素

http://noi.openjudge.cn/ch0111/01/查找最接近的元素 题目传送门 思路 可以看到数据范围,如果我们两层循环mn,10000*100000,时间复杂度绝对爆炸 所以我们就需要用到二分查找 什么是二分呢? 通俗的讲,就是每次砍半 假设我们在10个数据中查找接近7的元素 \(1 3 4 8 10 12 3…

一行代码搞定Windows/Office,史上最简单操作

曾几何时,安装和激活 Windows 或 Office 是让小白头疼的大工程,繁琐的操作让人心力交瘁。而今天,我们只需要一行代码就能轻松搞定!是不是听起来很不可思议? 一行代码究竟如何实现 Windows 和 Office 的快速激活?它是否既高效又安全?如今,无论是学习还是办公,都离不开 …

触想工业显示器应用于光伏自动化设备,助力绿色低碳能源发展

一、行业发展背景受能源危机影响及全球碳中和政策利好,近年来,我国光伏产业呈现快速扩张趋势。作为光伏组件核心发电设备,电池片的市场供需被同步拉高,也带动了电池片制造设备等周边产业的迅速成长。△光伏产业快速成长与此同时,旺盛需求带来的激烈竞争格局不断加剧产业“…