come ottenere l’ultimo valore di un vettore

voglio dire, se il valore dell’ultimo elemento in vector = 4 cout<<"Yes" come faccio a scrivere il codice di scrivere if(v.size()==y) dove y è un numero, ma doesnt lavoro comincio recentemente alla scrittura di codici

#include <iostream>
#include <vector>
#include <stdio.h>
using namespace std;
int main()
{
   int n,x,y;
   cin >> n >> x >> y;
   vector<int> v(n);
   for(int i = 0; i < n; i++)
   {
       cin >> v[i];
   }
   for(int i = 0; i < n; i++)
   {
       if(v[0] == x)
       {cout<<"EASY";
           return 0;
       }
       if(v[0] == x && v.back() == y)
       {
           cout << "BOTH";
           return 0;
       }
       if(v.back()==y)
       {
           cout << "HARD";
           return 0;
       }
       if(v[0] != x && v.back() != y)
       {
           cout << "OKAY";
           return 0;
       }
    }}
  • L’ultimo elemento è accessibile tramite v.back();. È necessario prima controllare il vettore non è vuoto.
  • v.size() restituisce il numero di elementi del vettore, non l’ultimo valore.
  • potrebbe, per favore, riformattare la tua domanda in un modo che è in realtà chiaro che cosa si sta chiedendo e che cosa il vostro codice che dovrebbe fare?
  • voglio dire se(v. size()==y) cout<<“difficile”; se il valore dell’ultimo elemento del vettore è di 11 e y=11 cout duro
  • BTW, ultimo ciclo è inutile.
InformationsquelleAutor imagine | 2014-02-27



One Reply
  1. 16

    v.size() si restituisce il numero di elementi in v, non l’ultimo elemento del vettore.

    Per ottenere l’ultimo valore di un vector, si può semplicemente chiamare std::vector::back().

    Naturalmente, è necessario assicurarsi che il vector non è vuoto prima che controllando std::vector::vuoto.

    if (!v.empty() && v.back()==y)
    {
        ...
    }
    • voglio confrontare con un altro valore come se(v. size()==y) cout<<“difficile”; dove y è il numero 4
    • Poi basta usare if(v.back() == y).
    • Aggiornato. Grazie. 😛
    • io lo uso ma non potrebbe u eseguire il codice con questo campione di 3 1 2\n 1 3 2
    • Puoi condividere il tuo codice in modo che posso segnalare il problema. Forse aggiornare la tua domanda con l’aggiunta di loro.
    • #include <iostream> #include <vector> #include <stdio.h> using namespace std; int main() { int n,x,y; cin >> n >> x >> y; vector<int> v(n); for(int i = 0; i < n; i++) { cin >> v[i]; } for(int i = 0; i < n; i++) { if(v[0] == x) { cout<<“FACILE”; return 0; } if(v[0] == x && v. size() == y) { cout << “ENTRAMBI”; return 0; } if(v. size()==y) {cout << “DIFFICILE”; return 0;} if(v[0] != x && v. size() != y) {cout << “OK”; return 0; }}}
    • il codice di cui sopra
    • non mettere lungo i frammenti di codice nei commenti, per favore, soprattutto quando sono già nella domanda originale. Non è facile da leggere e difficile da lavorare, quando sono state oggetto di dumping nei commenti. Più il limite di caratteri, significa che qualcosa potrebbe essere tagliato.
    • Si prega di aggiornare il codice in questione, non nel commento.
    • è la domanda
    • Voglio dire, il codice aggiornato dopo essere modifined in base a questa risposta.
    • come posso aggiornare il codice è rimasto all’uso di questo sito
    • Sotto la tua domanda, si potrà vedere la edit pulsante.
    • penso di modificarlo
    • Che cosa è previsto per l’uscita? Controllare l’esecuzione di risultato qui.
    • il put deve essere questo è il problema ahmed-aly.com/p.jsp?ID=6
    • Quindi, correggere la vostra logica. E questo è diventato un’altra domanda, chiedi in MODO. 😛
    • ok grazie per l’aiuto

Lascia un commento