C++学习
学习
learn 11233466
这个作者很懒,什么都没留下…
展开
-
表达式求值 栈 2021-11-09
#include <iostream>using namespace std;typedef struct StackNode{ char data; struct StackNode *next;}stacknode, *linkstack;int initstack(linkstack &s){ s = NULL; return 1;}int push(linkstack &s, char e){ linkstack p = new sta原创 2021-11-09 17:17:44 · 50 阅读 · 0 评论 -
C++ map基本操作
mapmap中所有元素都是pairpair中第一个元素为key,起到索引作用,第二个元素为value所有元素都会根据元素的键值自动排序本质:map/multimap属于关联式容器,底层结构是用二叉树实现优点:可以根据key值快速找到value值map和multimap区别:map不允许容器中有重复key值元素multimap允许1.构造和赋值:map<T1,T2> mp;map(const map &mp);map& operator=(const m原创 2021-05-20 15:34:00 · 175 阅读 · 0 评论 -
C++ set排序相关
set容器默认排序规则为从小到大利用仿函数,可以改变排序规则1.set存放内置数据类型#include <iostream>using namespace std;#include <set>class mycompare{public: bool operator()(int v1,int v2){ return v1>v2; }};void test01(){ set<int> s1; s1原创 2021-05-20 11:33:34 · 1020 阅读 · 0 评论 -
C++ pair对组
pair对组pair对组创建功能描述:成对出现的数据,利用对组可以返回两个数据创建方式:pair<type,type> p (value1,value2);pair<type,type> p = make_pair(valu1,value2);#include <iostream>using namespace std;#include <set>/**/void test01(){ //第一种方式 pair<原创 2021-05-20 10:45:24 · 58 阅读 · 0 评论 -
C++ set容器基本操作
set所有元素都会在插入时自动被排序set/multiset属于关联式容器,底层结构是用二叉树实现set和multiset区别:set不允许容器中有重复元素multiset允许1.构造:set st;set(const set &st);2.赋值:set& operator=(const set &st);3.大小和交换size();empty();swap(st);4.插入和删除insert(elem);clear();erase(pos);e原创 2021-05-20 00:14:55 · 1273 阅读 · 0 评论 -
C++ list 排序案例
#include <iostream>using namespace std;#include <list>//按照年龄进行升序,如果年龄相同按照身高进行降序class Person{public: Person(string name,int age,int height){ this->m_name=name; this->m_age=age; this->m_height=height;原创 2021-05-19 22:25:12 · 450 阅读 · 1 评论 -
C++ list基本操作
list将数据进行链式存储链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表由一系列的节点组成STL中的链表是一个双向循环链表重点看看如何判断迭代器是否支持随机访问 和 逆序排序1.构造函数:list lst;list(beg,end);list(n,elem);list(const list &lst);2.赋值和交换:assign(beg,end);assign(n,elem);list& operat原创 2021-05-19 21:50:35 · 2709 阅读 · 0 评论 -
C++ stack和queue基本操作
1.stack栈容器先进后出,只有一个出口栈中只有栈顶才可以被外界使用,因此栈不允许有遍历行为构造函数:stack stk;stack(const stack &stk);赋值操作:stack& operator=(const stack &stk);数据存取:push(elem); //向栈顶添加元素pop(); //从栈顶移除第一个元素top(); //返回栈顶元素大小操作:empty();size();2原创 2021-05-19 16:57:47 · 92 阅读 · 0 评论 -
C++ stl练习1
#include <iostream>using namespace std;#include<vector>#include<deque>#include<string>#include<algorithm>#include<time.h>class Person//创建选手类{public: Person(string name,int score){ this->name=name;原创 2021-05-19 11:58:34 · 120 阅读 · 0 评论 -
C++ deque
deque容器功能:双端数组deque和vector的区别:vector对于头部的插入删除效率低,数据量越大,效率越低deque相对而言,对头部的插入删除速度比vector快vector访问元素速度比deque快,与两者的内部实现有关deque内部工作原理:deque内部有一个中控器,维护每段缓冲区中的内容,缓冲区中存放真实数据中控器维护的是每个缓冲区的地址,使得使用deque时像一片连续的内存空间deque容器的迭代器也是支持随机访问的1.deque构造函数dequedeqT;原创 2021-05-19 10:54:45 · 114 阅读 · 0 评论 -
c++ vector (插入和删除 数据存取 互换容器 预留空间)
1.vector 插入和删除push_back(ele); //尾部插入元素elepop_back(); //删除最后一个元素insert(const_iterator pos,ele); //迭代器指向位置pos插入元素eleinsert(const_iterator pos,int count,ele); //迭代器指向位置pos插入count个元素ele原创 2021-05-18 00:03:25 · 281 阅读 · 0 评论 -
c++ vector容量和大小
对vector容器的容量和大小操作empty(); //判断容器是否为空capacity(); //容器的容量size(); //返回容器中元素的个数resize(int num); //重新指定容器的长度为num,若容器变长,则以默认值(0)填充新位置//如果容器变短,则末尾超出容器长度部分的元素被删除resize(int num,elem); //重新指定容器的长度为num,若容器变长,则以原创 2021-05-11 21:35:25 · 2226 阅读 · 0 评论 -
c++ vector容器 构造函数 赋值操作
vector容器功能:vector数据结构和数组非常相似,也称为单端数组区别:数组是静态空间,vector可以动态扩展动态扩展:并不是在原空间后续接新空间,而是找更大的内存空间,将原数据拷贝到新空间,释放原空间vector容器的迭代器是支持随机访问的迭代器1.vector构造函数创建vector容器vector v; //采用模板实现类实现,默认构造函数vector(v.begin(),v.end()); //将 v[begin(),end())原创 2021-05-11 21:19:11 · 999 阅读 · 0 评论 -
c++ string子串
string substr(int pos = 0, int n = npos) const;//返回由pos开始的n个字符组成的字符串#include <iostream>using namespace std;#include <string>void test01(){ string str = "hello"; string s = str.substr(1, 3); cout << s << endl;}//实用操作:从邮件地原创 2021-05-10 23:19:12 · 2695 阅读 · 0 评论 -
c++ string存取 插入和删除
1.string字符串存取char& operator[](int n); //通过[]方式取字符char& at(int n); //通过at方法取字符#include <iostream>using namespace std;#include <string>void test01(){ string str = "hello world"; for (int i = 0; i < str.size(); i++) {原创 2021-05-10 23:08:33 · 998 阅读 · 0 评论 -
c++ string字符串比较
字符串比较是按字符的ASCII码进行对比= 返回 0返回 1< 返回 - 1int compare(const string &s) const;//与字符串s比较int compare(const char *s) const; //与字符串s比较#include <iostream>using namespace std;void test01(){ string str1 = "hello"; string str2 = "aello"; if原创 2021-05-10 22:45:40 · 2254 阅读 · 0 评论 -
c++ string 查找和替换
#include <iostream>using namespace std;#include <string>void test01()//查找 find从左往右查找 rfind从右往左查找{ string str1 = "abcdefde"; int pos1 = str1.find("de"); //未找到时,返回值为-1 if (pos1 == -1) { cout << "未找到字符串" << endl; } else {原创 2021-05-10 18:24:32 · 831 阅读 · 0 评论 -
c++ string 构造函数 赋值操作 字符串拼接
1.string构造函数string(); //创建一个空的字符串,例如:string str;string(const char* s); //使用字符串s初始化string(const string& str);//使用一个string对象初始化另一个string对象string(int n,char c); //使用n个字符c初始化#include <iostream>using namespace std;#include <原创 2021-05-09 21:32:30 · 727 阅读 · 0 评论 -
c++ vector容器嵌套容器
#include<iostream>using namespace std;#include<vector>//容器嵌套容器,相当于二维数组void test01() { vector<vector<int>> v; //创建小容器 vector<int>v1; vector<int>v2; vector<int>v3; //向小容器中添加数据 for(int i=0;i<4;i++){原创 2021-05-09 00:39:11 · 797 阅读 · 0 评论 -
c++ vector
1.vector存放内置数据类型#include<iostream>using namespace std;#include<vector>#include<algorithm>//标准算法头文件//vector容器存放内置数据类型void print(int x){ cout<<x<<endl;}void test01() { //创建vector容器,类比数组 vector<int> v; //数据原创 2021-05-08 23:57:50 · 100 阅读 · 0 评论 -
c++ class和struct
struct和class区别struct 默认权限是 publicclass 默认权限是 private,若未设其权限为public,在类外是无法访问的原创 2021-05-08 17:42:18 · 54 阅读 · 0 评论