मैं एक अस्थायी valarray पर फिर से शुरू करना चाहता हूं, लेकिन यह काम नहीं कर रहा है।सी ++ श्रेणी-आधारित वैलार्रे रावल्यू पर लूप के लिए आधारित नहीं है
#include <iostream>
#include <valarray>
int main()
{
using namespace std;
valarray<int> numerators = {99, 26, 25};
valarray<int> denominators = {9, 2, 5};
for (int i : numerators/denominators) { cout << i << ","; }
// lots of errors
return 0;
}
नीचे मैं, प्राप्त करने के लिए, सिवाय इसके कि मैं temp_array
की तरह एक वस्तु को परिभाषित नहीं करना चाहती चाहते हैं क्या का एक न्यूनतम काम कर उदाहरण है: यहाँ मेरी (गैर काम कर रहे) कोड है।
#include <iostream>
#include <valarray>
int main()
{
using namespace std;
valarray<int> numerators = {99, 26, 25};
valarray<int> denominators = {9, 2, 5};
valarray<int> && temp_array = numerators/denominators;
for (int i : temp_array) { cout << i << ","; }
// prints 11,13,5,
return 0;
}
मेरे संकलक जी ++ संस्करण 4.8.5 (रेड हैट 4.8.5-4) है। मैं -std = C++ 0x ध्वज के साथ संकलित कर रहा हूं।
मैंने अन्य वाक्यविन्यास जैसे for (auto&& i : temp_array)
और for (int const & i : temp_array)
की कोशिश की है, लेकिन यह काम नहीं करता है।
'valarray' के' ऑपरेटर/'वापस जाने के लिए एक प्रॉक्सी वस्तु एक ला अभिव्यक्ति टेम्पलेट्स अनुमति दी है। – chris
मैं स्पष्ट रूप से बहुत लंबे समय तक सी ++ से दूर रहा हूं। क्या कोई बता सकता है कि कैसे 'int (int i: temp_array) {} 'लूप स्टेटमेंट के लिए मान्य है? क्या यह कुछ नहीं होना चाहिए (init; end_condition; increment) '? – user1717828
@ user1717828 लूप के लिए सी ++ 11 की श्रेणी-आधारित देखें। – milleniumbug