fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <queue>
  4. #include <set>
  5.  
  6. // Заполняем вектор частот символов
  7. // Сохраняем все символы алфавита в std::set
  8. void get_data(std::vector< std::pair<char, double> > &alpha){
  9. std::vector<char> fr(256);
  10. std::vector<char> stored(256, 1);
  11. char c;
  12.  
  13. while(std::cin >> c){
  14. fr[c]++; // Вектор хранит количество символов с кодом c
  15. // Добавить новую пару в том случае, если символа c нет в векторе
  16. if(stored[c] != -1){
  17. alpha.push_back(std::make_pair(c, -1));
  18. stored[c] = -1;
  19. }
  20. }
  21. for(auto it = alpha.begin(); it != alpha.end(); it++)
  22. it->second = 1.0 * fr[it->first] / alpha.size();
  23. }
  24.  
  25. void Huffman(std::set<char> &alpha, std::vector<double> &freq){
  26.  
  27. }
  28.  
  29. int main(){
  30. std::vector< std::pair<char, double> > alpha;
  31.  
  32. get_data(alpha);
  33.  
  34. for(auto it = alpha.begin(); it != alpha.end(); it++){
  35. std::cout << it->first;
  36. std::cout << " ";
  37. std::cout << it->second;
  38. std::cout << std::endl;
  39. }
  40. }
Success #stdin #stdout 0s 3420KB
stdin
sgsdhdfhdnd
stdout
s 0.333333
g 0.166667
d 0.666667
h 0.333333
f 0.166667
n 0.166667