2013-10-26 72 views
0
#include <iostream> 
#include <string> 
#include <unordered_set> 

template<class T> 
T cmerge (T a, T b) { T t(a); t.insert(b.begin(),b.end()); return t; } 

int main() 
{ 
    std::unordered_set<std::string> first;        // empty 
    std::unordered_set<std::string> second ({"red","green","blue"}); // init list 
    std::unordered_set<std::string> third ({"orange","pink","yellow"}); // init list 
    std::unordered_set<std::string> fourth (second);     // copy 
    std::unordered_set<std::string> fifth (cmerge(third,fourth));  // move 
    std::unordered_set<std::string> sixth (fifth.begin(), fifth.end()); // range 

    std::cout << "sixth contains:"; 
    for (const std::string& x: sixth) std::cout << " " << x; 
    std::cout << std::endl; 

    return 0; 
} 

的代碼(從http://www.cplusplus.com/reference/unordered_set/unordered_set/unordered_set/複製)該段不能下的Visual Studio 2012年編譯正確我不知道的Visual Studio是否支持可以列出unordered_set(或STL的其他容器)的初始化功能?請告訴我答案,謝謝!visual studio 2012不支持unordered_set(C++ stl)的列表初始化?

+1

這是C++ 11,我很確定VS 2012 ...不是。 – 2013-10-26 14:50:19

+3

儘管VS 2012實現了*一些* C++ 11功能,但它還遠沒有完成。對於這段代碼,你真的需要2013年(它工作得很好)。 –

回答