C++字符串分割的常用方法
前言参考:strtok_s 函数说明
C++没有python那样的split分割函数,但string.h和string类提供了下列函数方便我们处理字符串
函数与用例1. strtok_s应用:将字符串按照给定字符进行分割
参数:
123456char* strtok_s(char* str, const char* delimiters, char** next_token);/*第一个参数是待分割的字符串第二个参数是指定作为分界线的字符第三个参数是分割剩余的子字符串的存储位置*/
xxxxxxxxxx24 1string str = “dqywy”;2cout << “转换前:” << str << endl;3transform(str.begin(), str.end(), str.begin(), toupper);4cout << “转换后:” << str << endl;56// 也可以定义一个新的字符串来接收,修改目标容器起始地址即可,但是字符串长度应该一致7string str = “dqywy ...
C++容器种类及常用函数
前言参考自: C++中的容器类详解
容器种类
标准容器类
说明
顺序性容器
vector
从后面快速的插入与删除,直接访问任何元素
deque
从前面或后面快速的插入与删除,直接访问任何元素
list
双链表,从任何地方快速插入与删除
关联容器
set
快速查找,不允许重复值
multiset
快速查找,允许重复值
map
一对多映射,基于关键字快速查找,不允许重复值
multimap
一对多映射,基于关键字快速查找,允许重复值
容器适配器
虽然stack和queue中也可以存放元素,但在STL中并没有将其划分在容器的行列,而是将其称为容器适配器,这是因为stack和queue只是对其他容器的接口进行了包装,STL中stack和queue默认使用deque(双端队列)
stack
后进先出
queue
先进先出
priority_queue
最高优先级元素总是第一个出列,优先级队列默认使用vector作为其底层存储数据的容器,在vector上又使用了堆算法将vector中元素构造成堆的结构,因此prior ...
C++迭代器基础用法
前言参考自:C++迭代器(STL迭代器)iterator详解 (biancheng.net)
迭代器种类
正向迭代器
1容器类名::iterator 迭代器名;
常量正向迭代器
1容器类名::const_iterator 迭代器名;
反向迭代器
1容器类名::reverse_iterator 迭代器名;
常量反向迭代器
1容器类名::const_reverse_iterator 迭代器名;
迭代器使用迭代器类似于指针,可以指向容器中的不同元素并进行修改(常量迭代器无法修改),*迭代器就代表元素本身
实例1234567891011121314151617181920212223242526272829303132#include <iostream>#include <vector>#include <string>#include <algorithm>using namespace std;int main(){ vector<string> flowers = {"LJY" ...
公告栏3D小人
效果预览
在 Blog/themes/Butterfly/layout/includes/widget/card_announcement.pug 下添加如下代码:
1234567891011121314151617 .xpand(style='height:200px;') canvas.illo(width='800' height='800' style='max-width: 200px; max-height: 200px; touch-action: none; width: 640px; height: 640px;')script(src='https://fastly.jsdelivr.net/gh/xiaopengand/blogCdn@latest/xzxr/twopeople1.js')script(src='https://fast ...
虚函数实例分析
前言今天c++实验让我们分析下列程序的输出
代码与运行结果123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#include <iostream>#include <complex>using namespace std;class Base{public: Base() { cout << "Base-ctor" << endl; } ~Base() { cout << "Base-dtor" << endl; } virtual void f(int) { cout << "Base::f(int)" << endl; } virtual void f(double) { cout <& ...