C++学习笔记

万能头文件

#include <bits/stdc++.h>
using namespace std;

Map基本操作

  • ma[ ]:访问map中的元素,若该元素不存在,将创建一个新元素并将该元素映射到值类型的初始值上(对于int类型,初始值为0)
  • ma.size():返回map中元素个数
  • ma.count(element):若元素element存在map中返回1,否则返回0
  • ma.clear():清空map
  • ma.lower_bound():返回键值大于等于给定元素的第一个位置

迭代器使用

map<string, int>::iterator it; // 声明迭代器it

// 输出键值对
cout << it->first << ":" << it->second << endl;

删除操作

  • ma.erase(it):删除it指向的元素
  • ma.erase(key):删除指定键的元素
  • ma.erase(it, ma.end()):删除从it开始到结尾的所有元素

二分查找函数

  • lower_bound(first, last, val):返回非递减序列[first, last)中第一个大于等于val的位置,如果所有元素都小于val,则返回last的位置
  • upper_bound(first, last, val):返回非递减序列[first, last)中第一个大于val的位置,如果所有元素都小于等于val,则返回last的位置
  • binary_search(first, last, val):在序列中进行二分查找,若在序列中找到值val则返回True,否则返回False

去重函数

  • unique(a.begin(), a.end()):去除相邻的重复元素(只保留一个)

    注意:对于无序序列,需要先用sort进行排序,才能正确使用此函数。

文件操作

  • ifstream:从文件读取数据
  • ofstream:向文件写入数据