vectores llenar libreria hacer funciones ejemplos con como arreglos arreglo c++ vector std-pair

llenar - vector pair c++



Agregar a un vector de par (7)

Tengo un vector de pair como ese:

vector<pair<string,double>> revenue;

Quiero agregar una cadena y un doble de un mapa como este:

revenue[i].first = "string"; revenue[i].second = map[i].second;

Pero dado que los ingresos no se inicializan, aparece un error fuera de límites. Así que traté de usar vector::push_back así:

revenue.push_back("string",map[i].second);

Pero eso dice que no puede tomar dos argumentos. Entonces, ¿cómo puedo agregar a este vector de pair ?


En mi humilde opinión, una solución muy buena es usar la función c ++ 11 emplace_back :

revenue.emplace_back("string", map[i].second);

Simplemente crea un nuevo elemento en su lugar.


Intenta usar otro par temporal:

pair<string,double> temp; vector<pair<string,double>> revenue; // Inside the loop temp.first = "string"; temp.second = map[i].second; revenue[i].push_back(temp);



O puede usar la lista de inicialización:

revenue.push_back({"string", map[i].second});


Use std::make_pair :

revenue.push_back(std::make_pair("string",map[i].second));


revenue.push_back(pair<string,double> ("String",map[i].second));

esto funcionará


revenue.pushback("string",map[i].second);

Pero eso dice que no puede tomar dos argumentos. Entonces, ¿cómo puedo agregar a este par de vectores?

Estás en el camino correcto, pero piénsalo; ¿Qué contiene tu vector? Ciertamente no tiene una cadena y un int en una posición, contiene un Pair . Asi que...

revenue.push_back( std::make_pair( "string", map[i].second ) );