C ++ unordered_map falha quando usado com um vetor como chave
Background: Estou vindo do mundo Java e sou relativamente novo no C ++ ou no Qt.
Para jogar com unordered_map, escrevi o seguinte programa simples:
<code>#include <QtCore/QCoreApplication> #include <QtCore> #include <iostream> #include <stdio.h> #include <string> #include <unordered_map> using std::string; using std::cout; using std::endl; typedef std::vector<float> floatVector; int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); floatVector c(10); floatVector b(10); for (int i = 0; i < 10; i++) { c[i] = i + 1; b[i] = i * 2; } std::unordered_map<floatVector, int> map; map[b] = 135; map[c] = 40; map[c] = 32; std::cout << "b -> " << map[b] << std::endl; std::cout << "c -> " << map[c] << std::endl; std::cout << "Contains? -> " << map.size() << std::endl; return a.exec(); } </code>
Infelizmente, estou correndo para o seguinte erro que não é inspirador. Não há nem mesmo um número de linha.
: -1: erro: collect2: ld retornou 1 status de saída
Alguma idéia da origem do problema?
Desde já, obrigado.