c++ 统计 vector 每个元素出现的次数 (C++ count the number of occurrences of each element in vector)


 

c++ 统计 vector 每个元素出现的次数  (C++ count the number of occurrences of each element in vector)

参考: https://stackoverflow.com/questions/1204313/counting-occurrences-in-a-vector

 

 1 vector<int> blockType = { 2, 3, 4, 5, 2, 2, 1, 1, 5 };  2 typedef map<int, int> mapIntInt;  3 mapIntInt mapCount;  4 for (int i = 0; i < blockType.size(); ++i) {  5  mapIntInt::iterator iterator(mapCount.find(blockType[i]));  6     if (iterator != mapCount.end()) {  7         iterator->second++;  8  }  9     else { 10         mapCount[blockType[i]] = 1; 11  } 12 } 13 
14 //两种遍历map的方法
15 for_each(mapCount.begin(), mapCount.end(), [&](pair<int, int> element) { 16     int typeName = element.first; 17     int typeNumber = element.second; 18     cout << typeName << " : " << typeNumber << endl; 19  }); 20 
21 cout << "--------------------------------" << endl; 22 
23 for (auto const& element : mapCount) 24 { 25     int typeName = element.first; 26     int typeNumber = element.second; 27     cout << typeName << " : " << typeNumber << endl; 28 }

 

结果如下:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM