पृष्ठभूमि: मैं जावा दुनिया से आ रहा हूं और मैं सी ++ या क्यूटी के लिए बिल्कुल नया हूं।सी ++ unordered_map विफल होता है जब वेक्टर के साथ कुंजी
#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();
}
दुर्भाग्य से, मैं folowing त्रुटि जो प्रेरणादायक नहीं है में चल रहा हूँ:
आदेश unordered_map साथ खेलने के लिए में, मैं निम्नलिखित सरल कार्यक्रम में लिखा है। यहां तक कि एक लाइन संख्या भी नहीं है।
:-1: error: collect2: ld returned 1 exit status
समस्या की उत्पत्ति का कोई विचार?
अग्रिम धन्यवाद।
आपको एक हैश फ़ंक्शन की आवश्यकता है जो 'वेक्टर' –
लेता है यह रनटाइम विफलता नहीं है। –
@ सेठ कार्नेगी यही था कि हालांकि समस्या भी आ रही थी। हालांकि, मुझे ऐसा लगता है कि वेक्टर के रूप में मूल रूप से एक वर्ग में एक डिफ़ॉल्ट हैश फ़ंक्शन होना चाहिए। यदि यह मामला नहीं है, तो क्या आप मुझे बता सकते हैं कि कैसे एक प्रदान करना है या मुझे कुछ सामग्री को इंगित करना है। धन्यवाद! –