मैं अगले कोड है:std :: प्रतिलिपि एसटीडी :: एसटीडी के लिए अदालत :: जोड़ी
#include <iostream>
#include <algorithm>
#include <map>
#include <iterator>
//namespace std
//{
std::ostream& operator << (std::ostream& out,
const std::pair< size_t, size_t >& rhs)
{
out << rhs.first << ", " << rhs.second;
return out;
}
//}
int main()
{
std::map < size_t, size_t > some_map;
// fill some_map with random values
for (size_t i = 0; i < 10; ++i)
{
some_map[ rand() % 10 ] = rand() % 100;
}
// now I want to output this map
std::copy(
some_map.begin(),
some_map.end(),
std::ostream_iterator<
std::pair< size_t, size_t > >(std::cout, "\n"));
return 0;
}
इस कोड को मैं सिर्फ उत्पादन धारा को नक्शे की प्रतिलिपि चाहते हैं। ऐसा करने के लिए मुझे ऑपरेटर को परिभाषित करने की आवश्यकता है < < (..) - ठीक है। लेकिन नियमों के अनुसार नियम संकलक मेरे ऑपरेटर < <() नहीं ढूंढ सकते हैं।
क्योंकि std :: cout, std :: pair और std :: प्रतिलिपि जो मेरे ऑपरेटर < < कहा जाता है - सभी नामस्थान std से।
त्वरित समाधान - मेरे नामक < < को std नेमस्पेस में जोड़ें - लेकिन यह बदसूरत, imho है।
इस समस्या के लिए आपको क्या समाधान या समाधान पता है?
बीटीडब्ल्यू, एक एसटीएल एल्गोरिदम है जो पहले फॉर-लूप, http://www.sgi.com/tech/stl/generate.html को पूरा करेगा, फिर यदि आपको वास्तव में लगता है कि यादृच्छिक मानों को यादृच्छिक स्थानों को असाइन करना आवश्यक है , http://www.sgi.com/tech/stl/random_shuffle.html। – paxos1977