Re: [C++] Trovare il massimo tra n numeri

Messaggioda mklplo » 17/02/2018, 12:42

@Raptorista:Grazie nuovamente per le risposte.
mklplo
Advanced Member
Advanced Member
 
Messaggio: 689 di 2272
Iscritto il: 21/02/2016, 16:05

Re: [C++] Trovare il massimo tra n numeri

Messaggioda vict85 » 17/02/2018, 13:24

Al contrario del C, il C++ fornisce all'utente un numero notevole di implementazioni "standard" di numerosi algoritmi e strutture dati. Non puoi dire di conoscere il C++ senza conoscere almeno i concetti basi su di loro. Per esempio in queste pagine puoi vedere le strutture dati (le stringhe sono in un'altra pagina) e gli algoritmi presenti nel C++. Questa libreria fa ampio uso dei templete, che è un concetto abbastanza avanzato del C++, ed è infatti chiamata STL (Standard Template Library). Un'altro concetto importante per capirli è il concetto di iteratore, ma sono concetti che vedrai più avanti.

Per farti un esempio, con l'uso delle STL, il tuo codice può essere riscritto come:
Codice:
#include <algorithm>  // max_element
#include <iostream>   // cout, cin, endl
#include <vector>     // vector definitione e funzioni membro

static inline size_t
get_size( )
{
  int k;
  std::cout << "Inserisci il numero di valori di cui si vuole il massimo"
            << std::endl;
  std::cin >> k;
  if (k > 0)
    {
      return static_cast<size_t>(k);
    }
  std::cout << "L'elemento inserito non è valido" << std::endl;
  return get_size( );
}

int
main( )
{
  const size_t dim = get_size( );
  std::vector<float> vec;
  vec.reserve(dim);
  for (size_t i = 0; i < dim; i++)
    {
      float t;
      std::cout << "Inserisci il valore dell'elemento " << i << std::endl;
      std::cin >> t;
      vec.push_back(t);
    }

  std::vector::const_iterator result
      = std::max_element(vec.begin( ), vec.end( ));
  std::cout << "Il valore massimo:" << *result << std::endl;
}
ovviamente scrivere un codice di questo tipo ti potrebbe insegnare la sintassi del C++ ma non ti aiuta minimamente ad imparare a ragionare sui problemi. D'altra parte, la presenza di queste funzioni è molto utile al programmatore esperto perché gli fa risparmiare tempo e riduce il rischio di errori di distrazione.
vict85
Moderatore
Moderatore
 
Messaggio: 9258 di 19253
Iscritto il: 16/01/2008, 00:13
Località: Berlin

Re: [C++] Trovare il massimo tra n numeri

Messaggioda mklplo » 17/02/2018, 14:23

@vict85:grazie anche te per la risposta.
mklplo
Advanced Member
Advanced Member
 
Messaggio: 690 di 2272
Iscritto il: 21/02/2016, 16:05

Precedente

Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite