#include <iostream>
#include <vector>
#include <string>
using namespace std;
struct structure {
string Asset;
string stock;
double purchase_price;
double current_price;
} ;
structure* ptrfirstasset( vector< structure> portfolio) {
for ( int i = 0 ; i < portfolio.size ( ) ; i++ ) {
if ( portfolio[ i] .current_price < portfolio[ i] .purchase_price ) {
return & portfolio[ i] ;
//ici on recupere l'addresse du premier actif donc le prix actuel est plus petit que le prix sur le marche.
}
}
// si a jamais cette actif n'existe pas , on retourne nullptr pour dire nous n'avons pas trouve un pointeur valide.
return nullptr;
}
int main( ) {
// ici on definit notre vecteur struture donc le nom est porfolio
vector< structure> portfolio = {
{ "ABC Corp" , "stock" , 25.50 , 28.20 } ,
{ "XYZ Bank" , "stock" , 18.75 , 17.90 } ,
{ "CAM Bond" , "Bond" , 98.50 , 101.20 } ,
{ "QF ETF" , "ETF" , 42.00 , 46.50 }
} ;
structure* result = ptrfirstasset( portfolio) ;
//ici on appelle notre fonction qui va retourner le pointeur mais avant de l'afficher, on se rassure quelle existe.
// dans le cas ou cette fonction existe on le deferencie membre par membre et on l'affiche.
if ( result ! = nullptr) {
cout << "Asset: " << result- > Asset << endl;
cout << "Stock: " << result- > stock << endl;
cout << "Purchase price: " << result- > purchase_price << endl;
cout << "Current price: " << result- > current_price << endl;
//ici nous allons modifier l'une des valeurs de notre actif.
result- > purchase_price = 17.95 ;
cout << "The asset after changing one of its values is shown below:" << endl;
cout << "Asset: " << result- > Asset << endl;
cout << "Stock: " << result- > stock << endl;
cout << "Purchase price: " << result- > purchase_price << endl;
cout << "Current price: " << result- > current_price << endl;
} else {
// nous somme dans le cas ou nous n'avons pas trouve d'actif donc le prix actuel est plus peit que le prix sur le marche.
cout << "No asset has a lower price than its buy price" << endl;
}
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKc3RydWN0IHN0cnVjdHVyZSB7CiAgICBzdHJpbmcgQXNzZXQ7CiAgICBzdHJpbmcgc3RvY2s7CiAgICBkb3VibGUgcHVyY2hhc2VfcHJpY2U7CiAgICBkb3VibGUgY3VycmVudF9wcmljZTsKfTsKIApzdHJ1Y3R1cmUqIHB0cmZpcnN0YXNzZXQodmVjdG9yPHN0cnVjdHVyZT4gcG9ydGZvbGlvKSB7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHBvcnRmb2xpby5zaXplKCk7IGkrKykgewogICAgICAgIGlmIChwb3J0Zm9saW9baV0uY3VycmVudF9wcmljZSA8IHBvcnRmb2xpb1tpXS5wdXJjaGFzZV9wcmljZSkgewogICAgICAgICAgICByZXR1cm4gJnBvcnRmb2xpb1tpXTsKICAgICAgICAgICAgLy9pY2kgb24gcmVjdXBlcmUgbCdhZGRyZXNzZSBkdSBwcmVtaWVyIGFjdGlmIGRvbmMgbGUgcHJpeCBhY3R1ZWwgZXN0IHBsdXMgcGV0aXQgcXVlIGxlICBwcml4IHN1ciBsZSBtYXJjaGUuCiAgICAgICAgfQogICAgfQogLy8gc2kgYSBqYW1haXMgY2V0dGUgYWN0aWYgbidleGlzdGUgcGFzICwgb24gcmV0b3VybmUgbnVsbHB0ciBwb3VyIGRpcmUgbm91cyBuJ2F2b25zIHBhcyB0cm91dmUgdW4gcG9pbnRldXIgdmFsaWRlLgogICAgcmV0dXJuIG51bGxwdHI7Cn0KIAppbnQgbWFpbigpIHsKCS8vIGljaSBvbiBkZWZpbml0IG5vdHJlIHZlY3RldXIgc3RydXR1cmUgZG9uYyBsZSBub20gZXN0IHBvcmZvbGlvCiAgICB2ZWN0b3I8c3RydWN0dXJlPiBwb3J0Zm9saW8gPSB7CiAgICAgICAgeyJBQkMgQ29ycCIsICJzdG9jayIsIDI1LjUwLCAyOC4yMH0sCiAgICAgICAgeyJYWVogQmFuayIsICJzdG9jayIsIDE4Ljc1LCAxNy45MH0sCiAgICAgICAgeyJDQU0gQm9uZCIsICJCb25kIiwgOTguNTAsIDEwMS4yMH0sCiAgICAgICAgeyJRRiBFVEYiLCAiRVRGIiwgNDIuMDAsIDQ2LjUwfQogICAgfTsKIAogICAgc3RydWN0dXJlKiByZXN1bHQgPSBwdHJmaXJzdGFzc2V0KHBvcnRmb2xpbyk7CiAvL2ljaSBvbiBhcHBlbGxlIG5vdHJlIGZvbmN0aW9uIHF1aSB2YSByZXRvdXJuZXIgbGUgcG9pbnRldXIgbWFpcyBhdmFudCBkZSBsJ2FmZmljaGVyLCBvbiBzZSByYXNzdXJlIHF1ZWxsZSBleGlzdGUuCiAvLyBkYW5zIGxlIGNhcyBvdSBjZXR0ZSBmb25jdGlvbiBleGlzdGUgb24gbGUgZGVmZXJlbmNpZSBtZW1icmUgcGFyIG1lbWJyZSBldCBvbiBsJ2FmZmljaGUuCiAgICBpZiAocmVzdWx0ICE9IG51bGxwdHIpIHsKICAgICAgICBjb3V0IDw8ICJBc3NldDogIiA8PCByZXN1bHQtPkFzc2V0IDw8IGVuZGw7CiAgICAgICAgY291dCA8PCAiU3RvY2s6ICIgPDwgcmVzdWx0LT5zdG9jayA8PCBlbmRsOwogICAgICAgIGNvdXQgPDwgIlB1cmNoYXNlIHByaWNlOiAiIDw8IHJlc3VsdC0+cHVyY2hhc2VfcHJpY2UgPDwgZW5kbDsKICAgICAgICBjb3V0IDw8ICJDdXJyZW50IHByaWNlOiAiIDw8IHJlc3VsdC0+Y3VycmVudF9wcmljZSA8PCBlbmRsOwogICAgICAgIC8vaWNpIG5vdXMgYWxsb25zIG1vZGlmaWVyIGwndW5lIGRlcyB2YWxldXJzIGRlIG5vdHJlIGFjdGlmLgogICAgICAgIHJlc3VsdC0+cHVyY2hhc2VfcHJpY2UgPTE3Ljk1OwogICAgICAgIGNvdXQ8PCJUaGUgYXNzZXQgYWZ0ZXIgY2hhbmdpbmcgb25lIG9mIGl0cyB2YWx1ZXMgaXMgc2hvd24gYmVsb3c6Ijw8ZW5kbDsKICAgICAgICAgY291dCA8PCAiQXNzZXQ6ICIgPDwgcmVzdWx0LT5Bc3NldCA8PCBlbmRsOwogICAgICAgIGNvdXQgPDwgIlN0b2NrOiAiIDw8IHJlc3VsdC0+c3RvY2sgPDwgZW5kbDsKICAgICAgICBjb3V0IDw8ICJQdXJjaGFzZSBwcmljZTogIiA8PCByZXN1bHQtPnB1cmNoYXNlX3ByaWNlIDw8IGVuZGw7CiAgICAgICAgY291dCA8PCAiQ3VycmVudCBwcmljZTogIiA8PCByZXN1bHQtPmN1cnJlbnRfcHJpY2UgPDwgZW5kbDsKICAgICAgICAKICAgIH0gZWxzZSB7CiAgICAJLy8gbm91cyBzb21tZSBkYW5zIGxlIGNhcyBvdSBub3VzIG4nYXZvbnMgcGFzIHRyb3V2ZSBkJ2FjdGlmIGRvbmMgbGUgcHJpeCBhY3R1ZWwgZXN0IHBsdXMgcGVpdCBxdWUgbGUgcHJpeCBzdXIgbGUgbWFyY2hlLgogICAgICAgIGNvdXQgPDwgIk5vIGFzc2V0IGhhcyBhIGxvd2VyIHByaWNlIHRoYW4gaXRzIGJ1eSBwcmljZSIgPDwgZW5kbDsKICAgIH0KIAogICAgcmV0dXJuIDA7Cn0=