2016-12-29 2 views
1

Nous avons:Tri flottant tableau pointeur

private void function(ptr* data, const int size_of_data){ 
     std::sort(std::begin(data), std::end(data), floatcomparer); 

Est-ce réellement possible? Y a-t-il un autre moyen? Parce que je reçois ici un error: no instance of overloaded function ""std::begin" matches the argument types are: (float *). Je sais que nous avons besoin de la taille pour un algorithme de tri rapide comme std utilise et ptr * ne fournit pas une taille incluse. Mais ne devrait-il pas y avoir un moyen parce que je sais à quel point le tableau est sur lequel je pointe?

+1

public n'est pas autorisée dans la définition de la fonction. – pSoLT

+0

vrai que, je vais éditer – Jeahinator

+1

Aucun est privé. S'il vous plaît lire http://en.cppreference.com/w/cpp/language/access – pSoLT

Répondre

1
std::sort(arr, arr+ size, std::greater<float>()); 

où vous pouvez utiliser passe float arr sous cette forme

func(float[],int sz){...} 

Avec ce comparateur vous pouvez trier.

1

Votre signature de la fonction ne va pas et que vous appelez std::sort correctement, vous voulez quelque chose comme:

void function(float* data, std::size_t size_of_data) { 
    std::sort(data, data + size_of_size, std::less<float>()); 
}