मैंने sort
के साथ लैम्ब्डा फ़ंक्शन का उपयोग करने का प्रयास किया, लेकिन "सेगमेंटेशन गलती" त्रुटियां प्राप्त हो रही थीं।सीडी ++ 0x/C++ 11 में lambda फ़ंक्शन के साथ std :: सॉर्ट काम करना चाहिए?
g++ -std=gnu++0x test2.cpp && ./a.out
का उपयोग कर
#include <iostream>
#include <algorithm>
int main()
{
const int len = 18;
int intArr[len];
for (int i=0;i<len;i++) intArr[i]=1000+i;
// The following is expected to sort all but the last element of the array
std::sort(intArr, intArr + len -1, [](int a, int b)
{
std::cout<<"("<<a<<", "<<b<<")\n";
return (a<b?-1:(a>b?1:0));
});
return 0;
}
मैं संकलन और Ubuntu 11.04 (64) में इस कोड को चलाने: मैं निम्नलिखित करने के लिए कोड को आसान बनाने में कामयाब रहे।
यह फॉर्म (big_integer, 1008), कुछ (0, 1008) के कुछ जोड़े प्रिंट करता है और "सेगमेंटेशन गलती" से बाहर निकलता है।
बस एक टिप्पणी के रूप में, आप केवल अपने कोड के साथ पहले 17 तत्वों को क्रमबद्ध कर रहे हैं। –
हां। यह तथ्य कोड की एकमात्र टिप्पणी में उल्लेख किया गया है। – fiktor
@KerrekSB: "// निम्नलिखित सभी को सरणी के अंतिम तत्व को सॉर्ट करने की उम्मीद है" – Griwes