Cómo utilizar unordered_map en Android?
Estoy tratando de usar un hash_map, definido en el Android NDK, pero obtengo una "advertencia de depreciación":
ndk/sources/cxx-stl/gnu-libstdc++/4.6/include/ext/../backward/backward_warning.h:33:2: error: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno- deprecated. [-Werror=cpp]
Y puesto que "unordered_map" está presente en gnu-libstdc ++ / 4.6 / include / y también en gnu-libstdc ++ / 4.6 / include / tr1 /, creo que hay una manera de usarlo.
- Compilación de C + + 11 fuentes para Android NDK
- Configuración de C ++ 11 (std :: thread) para NDK con ADT / Eclipse
- Habilitar la compatibilidad con C ++ 11 en Android
- Problema de calidad de voz en Android VoIP app con PJSIP
- Error: 'to_string' no es un miembro de 'std'
El punto es que no puedo encontrarlo. Cuál de las siguientes es la correcta (si existe):
#include <tr1/unordered_map.h> #include <unordered_map>
Y luego, ¿cómo usarlo? __gnu_cxx :: unordered_map no es reconocido … y no sé cómo encontrar esta información.
- Android NDK r9b y compilación de C ++ 11
- Cómo utilizar std :: this_thread :: yield () deterministically?
- C ++ 11 std :: async en Android NDK no funciona
- Cómo construir impulso para android como biblioteca compartida con c + + 11 de apoyo
- Uso no válido de tipo incompleto en android ndk utilizando c ++ 11 std :: async
- C ++ 11 biblioteca aleatoria en Android JNI
- Obtener Android NDK r9d para tener C + + 11 de apoyo
- ¿Cuál es la diferencia en GCC entre -std = gnu ++ 0x y -std = c ++ 0x y cuál debe ser utilizado?
En caso de que no quiera / necesite soporte de C ++ 11, puede usar el de STLPort usando:
// Here we are referencing the stlport one: #include <unordered_map> ... std::tr1::unordered_map<int, int> test;
Eso es porque STLPort define unordered_map dentro del espacio de nombres tr1 , pero el encabezado STLPort no está dentro de ninguna carpeta / tr1 / .
Finalmente encontré una manera de añadir soporte C ++ 11 en mi proyecto de Android. Bastante fácil cuando lo sabemos, pero tomé un tiempo para averiguarlo. Ni STLPort ni Boost fueron necesarios. Una vez que C ++ 11 fue integrado, podría usar " unordered_map " de la siguiente manera:
#include <unordered_map> ... std::unordered_map<int, int> test;
He creado una nueva pregunta para explicar cómo habilitar la compatibilidad con C ++ 11 en Android aquí .
- Imágenes de Picasso Library y GridView
- Phonegap / Cordova cámara plugin – cómo obtener la fecha de la foto / hora?