2016-03-05 40 views
-5

我在C++初学者,我的编译器(C-免费5.0)无法编译此代码: -将代码从C++ 11转换为C++ 98?

#include <iostream> 
#include <map> 
#include <string> 

int main() 
{ 
std::string input = "slowly"; 

std::map<char, int> occurrences; 

for (char character : input) 
{ 
    occurrences[character] += 1; 
} 

for (auto& entry : occurrences) 
{ 
    std::cout << entry.first << '=' << entry.second << std::endl; 
} 
} 

谁能告诉我如何让它在我的编译器工作?

+0

使用'的std :: string ::迭代'和'std :: map :: iterator' –

+0

搜索如何遍历字符串和地图。 – juanchopanza

+0

你能写出完整的代码作为回答请 – Dreamer

回答

1
  • 转换范围为基础的使用auto和写入型手动

代码中使用迭代器

  • 停止循环:

    #include <iostream> 
    #include <map> 
    #include <string> 
    
    int main() 
    { 
        std::string input = "slowly"; 
    
        std::map<char, int> occurrences; 
    
        for (std::string::iterator character = input.begin(); character != input.end(); character++) 
        { 
         occurrences[*character] += 1; 
        } 
    
        for (std::map<char, int>::iterator entry = occurrences.begin(); entry != occurrences.end(); entry++) 
        { 
         std::cout << entry->first << '=' << entry->second << std::endl; 
        } 
    }