C++ 编程技巧

1:  容器vector  res

vector<int> res                       // 用vector声明一个数组, 元素为int类型

vector<int> res{0, 1, 2, 3}; // 初始化一个res的容器

vector<int> res(n, -1);    // 初始化一个res的容器, 有3个元素,每个元素值为-1

res.size()                             // vector用.size()去求解大小或去计算元素个数

res.push_back(i)            // 向容器res尾部插入元素i  (类似进栈)

res.pop_back()            // 弹出当前容器最后一个元素 (类似栈顶元素出栈)

vector<string>  roma{"XI", "D", "II"}; // 初始化一个字符串型容器

res.begin()       // res的首部指针,是一个迭代器

res.end()        // res的尾部指针,是一个迭代器

res.front()      // res的第一个元素

res.back()    // res的最后一个元素

res.resize(n, 0)    // 配容器的内存大小为n, 初始值为0。默认不写的话为0。  (这个是将值清0)\

res.clear();    //  清空一维的数组, 这个动作会将vector大小设置为0, 但是capacity不变。

参考链接:

C++ —— vector容器_二维vector赋值-CSDN博客

【C++ STL】vector类最全详解(什么是vector?vector类的常用接口有哪些?)-CSDN博客

【C++】详解vector二维数组的全部操作(超细图例解析!!!)_c++ 二维vector-CSDN博客

2: 二维容器、矩阵

vector<string> strs;

vector<vector<int>> nums;

int m = strs.size();   // 求行

int n = strs[0].size();  // 求列

nums.push_back(nums1);   // 二维数组追加一个一个数组 vector<int> nums1

3: hash_map    m

unordered_map<int, int> m  // 用unordered_map声明一个无序map, key为int, val为int

m.count(key)                     // 查找hash_map中有没有这个key-val,返回个数

m[key] = val;                     // m中添加一个key-value

unordered_map<string, int> roma{{"IV", 4}, {"IX", 9}, {"XL", 40}};   // 初始化一个hash_map,注意这里的数据类型

4: 链表

ListNode* dumny = new ListNode(-1);           // 创建一个哑节点

ListNode*cur = dumny;                                //  创建一个游标来指向当前哑节点

cur = cur->next;                                         // 游标7移动

5: 字符串string s

string  s = "" ;          //初始化一个空串

int str_len = s.size();               //求字符串s的长度

s.empty();                 // s为空则返回true,否则返回false

s[0]         //s的第一个元素 访问字符串的元素可以用下标去访问

string str1 = s.substr(2, 5)   // 返回s从下标2开始的5个字符长度的子串

string str2 = s.substr(2)   // 返回s从下标2开始到结尾的子串, 默认值为结尾

int pos  = s.find("love")   // 返回子串love在s的起始位置

string res;

res += '单个字符' or 某个子字符串

res.reverse(res.begin(), res,end()); // 反转字符串

6: 函数

int a = max(A, B);  // 求最大值

int b = min (A, B);   // 求最小值

INT_MAX   // 正整数的最大值2^31-1

INT_MIN   // 正整数的最小值-2^31

sort(vectorA.begin(), vectorA.end());   // 排序, 元素分别是容器首部和容器尾部

swap(a, b);   // 交换a, b

7: 栈和队列

stack<int> my_stack;

my_stack.pop()

my_stack.push()

my_stack.top()

queue<int> my_queue;

my_queue.pop()

my_queue.push()

my_queue.front()   队首元素

my_queue.bac()  队尾元素

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值