Técnicas de uso común en STL: configuración de duplicación de verificación, clasificación de cola de prioridad, caso de cadena, mínimo, el que sea el más pequeño de los tres números, asignación de establecimiento de mapa, aplicación de pares

1. Compruebe si hay alguna duplicación:

set<int> s;
s.insert(2);
if(s.count(2) == 0){
    
    ...} // s.count()统计个数

2. Clasificación automática de elementos insertados:

priority_queue<int> ans // 最大堆排序
priority_queue<long,vector<long>, greater<long>()> ans; // 最小堆排序

3. Conversión de caja de cadenas:

string s;
transform(s.begin(), s,end(), s.begin(), ::tolower);

El tolower debe ser llamado en el espacio global. Las razones son las siguientes: La función de plantilla de transformación llama a la función tolower. La razón del error, la solución
4. El máximo / más pequeño de los tres números:

#include <algorithm>
using namespace std;
int x = min(min(2,3),5);

struct var {
    
    
	char *name;
	int key;
	var(char *a,int k):name(a),key(k){
    
    }
};
bool comp(const var& l, const var& r) {
    
    
	return l.key < r.key;
}
int main() {
    
    
	var v1("var1", 2);
	var v2("var2", 3);
	cout << std::min(v1, v2,comp).name << endl;
	return 0;

5. La relación de mapeo
establecida por el mapa La relación de mapeo establecida por el mapa es automáticamente ordenada por el árbol rojo-negro, la relación de mapeo establecida por unordered_map no es ordenada internamente por la tabla hash.

// 定义一个map对象
map<int, string> mapStudent;
 
// 第一种 用insert函數插入pair
mapStudent.insert(pair<int, string>(000, "student_zero"));
 
// 第二种 用insert函数插入value_type数据
mapStudent.insert(map<int, string>::value_type(001, "student_one"));
 
// 第三种 用"array"方式插入
mapStudent[123] = "student_first";

原文链接:https://blog.csdn.net/sevenjoin/article/details/81943864

6, los
parámetros de paso de la función de aplicación make_pair usan directamente make_pair

f(std::make_pair(42, 12)); //pass two values as pair

aplicación de par

// make_pair example
#include <utility> //pair的标准库类型,它定义在头文件utility中

int main () {
    
    
// 方式一:
  std::pair <int,int> foo;
  foo.first = 1;                  // the type of first is int
  foo.second = 2;                   // the type of second is int
// 方式二:
  std::pair <int,int> bar(1,2);
// 方式三: 
  std::pair <int,int> xxx;
  xxx = std::make_pair(10,20);
  std::cout << "foo: " << foo.first << ", " << foo.second << '\n';

  return 0;
}

7. Extracción del elemento superior de la pila y el elemento principal de la cola

stack<int> ans;
ans.push(2);
ans.push(3);
val = ans.top(); //栈用top

queue<int> ans;
ans.push(2);
ans.push(3);
val = ans.front(); // 队列用front

Supongo que te gusta

Origin blog.csdn.net/qq_33726635/article/details/106075361
Recomendado
Clasificación