में पास करने का प्रयास कर रहा है मेरे पास एक ऐसा फ़ंक्शन है जो स्ट्रिंग का वेक्टर लेता है, और मेरे पास वेक्टर में स्ट्रिंग वेक्टर की एक श्रृंखला है।एक वेक्टर की सामग्री को थ्रेड
मैं तार के प्रत्येक वेक्टर को एक नए धागे में गुजरने वाले वेक्टर के माध्यम से लूप करना चाहता था।
for (vector<vector<string> >::iterator it = vecstringvec.begin() ;
it != vecstringvec.end(); ++it){
threadvector.push_back(thread(func, *it));
}
उपर्युक्त उपर्युक्त उपरोक्त को छोड़कर काम नहीं करता है (त्रुटि संकलित करें)। मुझे विश्वास है कि मुझे पास करने के लिए वेक्टर के std :: ref की आवश्यकता है, लेकिन मुझे यकीन नहीं है कि, या इटरेटर का उपयोग करके ऐसा कैसे करें।
पूर्ण त्रुटि:
/usr/include/c++/4.8/functional: In instantiation of ‘struct std::_Bind_simple<void (*(std::vector<std::basic_string<char> >, std::reference_wrapper<std::vector<std::basic_string<char> > >))(std::vector<std::basic_string<char> >&, std::vector<std::basic_string<char> >&)>’:
/usr/include/c++/4.8/thread:137:47: required from ‘std::thread::thread(_Callable&&, _Args&& ...) [with _Callable = void (&)(std::vector<std::basic_string<char> >&, std::vector<std::basic_string<char> >&); _Args = {std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::reference_wrapper<std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >}]’
prog.cpp:199:55: required from here
/usr/include/c++/4.8/functional:1697:61: error: no type named ‘type’ in ‘class std::result_of<void (*(std::vector<std::basic_string<char> >, std::reference_wrapper<std::vector<std::basic_string<char> > >))(std::vector<std::basic_string<char> >&, std::vector<std::basic_string<char> >&)>’
typedef typename result_of<_Callable(_Args...)>::type result_type;
^
/usr/include/c++/4.8/functional:1727:9: error: no type named ‘type’ in ‘class std::result_of<void (*(std::vector<std::basic_string<char> >, std::reference_wrapper<std::vector<std::basic_string<char> > >))(std::vector<std::basic_string<char> >&, std::vector<std::basic_string<char> >&)>’
_M_invoke(_Index_tuple<_Indices...>)
^
make: *** [prog.o] Error 1
आपको क्या लगता है कि यह काम नहीं करता है? – Johan
जब आप बैठे "काम नहीं करता", तो इसका मतलब क्या है? क्या आप विस्तार से बता सकते हैं? –
एक त्रुटि जो टिप्पणी बॉक्स के लिए स्पष्ट रूप से बहुत लंबी है। इस तरह की कई चीजें हालांकि: ^ /usr/include/c++/4.8/functional:1727:9: त्रुटि: 'वर्ग' में 'प्रकार' नाम का कोई प्रकार नहीं है :: result_of)) (std :: basic_string , std :: वेक्टर >> और)> ' _M_invoke (_Index_tuple <_Indices...>) –
user3816764