Asignación de mapa STL_sort_size_delete

tipo de mapa / mapa múltiple

  1. map <T1, T2, less> mapA; // El contenedor se organiza elementos en orden ascendente de claves. Si no se especifica ningún objeto de función, el objeto de menos función se usa por defecto.
  2. map <T1, T2, Greater> mapB; // El contenedor se organiza elementos en orden descendente de claves.
  3. cada vez menos se puede reemplazar con otros functores de objetos de función.
  4. Puede escribir un objeto de función personalizado para comparar tipos personalizados y utilizar el mismo método que el objeto de función utilizado en la construcción de conjuntos.

Copiar construcción y asignación de objeto de mapa

map(const map &mp);		     //拷贝构造函数
map& operator=(const map &mp);	//重载等号操作符
map.swap(mp);				//交换两个集合容器

Por ejemplo:

		map<int, string> mapA;
		mapA.insert(pair<int,string>(2, "李四"));	
		mapA.insert(pair<int,string>(1, "张三"));	
		mapA.insert(pair<int,string>(3, "王五"));	
		mapA.insert(pair<int,string>(4, "赵六"));	

		map<int ,string> mapB(mapA);	//拷贝构造,此时mapB 和mapA中元素一致
		
		map<int, string> mapC;
		mapC = mapA;			    //赋值,此时mapC 和mapA中元素一致

		mapC[3] = "老张";            //mapC中,此时包含 张三, 李四, 老张, 赵六
		mapC.swap(mapA);		    //mapA 和mapC交换

tamaño del mapa

        map.size();	//返回容器中元素的数目
		map.empty();//判断容器是否为空
		map<int, string> mapA;
		mapA.insert(pair<int,string>(2, "李四"));	
		mapA.insert(pair<int,string>(1, "张三"));	
		mapA.insert(pair<int,string>(3, "王五"));	
		mapA.insert(pair<int,string>(4, "赵六"));	

	if (!mapA.empty())
		{
			int size = mapA.size();		//size 为 4
		}

eliminación del mapa

1) map.clear (); // Eliminar todos los elementos
2) map.erase (pos); // Eliminar el elemento señalado por el iterador pos y devolver el iterador del siguiente elemento.
3) map.erase (beg, end); // Elimina todos los elementos en el intervalo [beg, end) y devuelve el iterador del siguiente elemento. (
¿Has aprendido matemáticas en la escuela secundaria!) 4) map.erase (key); // Elimina el par con la clave en el contenedor y devuelve el número de pares eliminados
5) Map.erase (key_type * first, key_type * last) // Eliminar
todos los grupos de equipos correspondientes a una clave específica en el rango medio cerrado y medio abierto especificado por la matriz

Ejemplos:

#include <iostream>
#include <functional>
#include <algorithm>
#include <map>
#include <string>

using namespace std;

int main()
{
	map<int, string, greater<int>> mapStu;

	mapStu.insert(pair<int, string>(2, "李四"));
	mapStu.insert(pair<int, string>(1, "张三"));
	mapStu.insert(pair<int, string>(3, "王五"));
	mapStu.insert(pair<int, string>(4, "赵六"));

	//返回值: 如果大于0, 返回的值为删除元素的个数, 小于0则失败.
	map<int, string, greater<int>>::size_type ret = mapStu.erase(5);
	cout<<"ret = "<<ret<<endl;

	int range[] = {1, 2, 3, 4};
	mapStu.erase(range+1, range+3); //删除数组指定的半闭半的区间中指定的key对应的所有队组

	for(map<int, string, greater<int>>::iterator it = mapStu.begin(); it != mapStu.end(); it++)
	{
		cout<<"key: "<<(*it).first<<" value: "<<(*it).second<<endl;
	}

	system("pause");
	return 0;
}

Entorno operativo: versión de aprendizaje vc ++ 2010
Resultados operativos:
Inserte la descripción de la imagen aquí

14 artículos originales publicados · Me gusta1 · Visitas 119

Supongo que te gusta

Origin blog.csdn.net/m0_45867846/article/details/105465464
Recomendado
Clasificación