2013-01-10 60 views
12

Cercando di ordinare una matrice di numeri interi e dopo qualche ricerca su google, si è imbattuto nella soluzione utilizzando std::sort accompagnata da questo errore: namespace "std" has no member "sort".namespace "std" non ha alcun membro "sort"

Solo per disqalify scrupoli che non sto usando il namespace std, ecco la mia intestazione:

#include "stdafx.h" 
#include <iostream> 
#include <fstream> 
#include <sstream> 
#include <string> 
using namespace std; 
+3

Non si dovrebbe mai mettere 'using namespace' in un'intestazione; non tutti quelli che includono la tua intestazione vorranno lo spazio dei nomi globale inquinato. –

+1

Ciò che è peggio è che lo spazio dei nomi globale è contaminato da cose diverse a seconda di quali file di intestazione dell'ordine sono stati inclusi nel passato e nel futuro. – Yakk

risposta

31

Add:

#include <algorithm> 

come indicato nella pagina std::sort() di riferimento.

Vedere Using std Namespace, Why is "using namespace std" considered bad practice? e molte altre domande su SO che parlano di using namespace std;.

+0

Questo ha risolto il mio errore _namespace "std" non ha alcun membro "sort" _ durante il tentativo di compilare con gnustl_static su Android NDK. Il riferimento a std :: sort funziona in XCode e Visual Studio, ma per NDK avevo bisogno di aggiungere l'inclusione da questa risposta. Grazie! –

Problemi correlati