Guest User

Untitled

a guest
Sep 18th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. use std::collections::HashMap;
  2.  
  3. struct Pc {
  4. maker: String,
  5. year: u16,
  6. }
  7.  
  8. fn main() {
  9. let my_mac = Pc {
  10. maker: "apple".to_string(),
  11. year: 2018,
  12. };
  13. let my_old_mac = Pc {
  14. maker: "apple".to_string(),
  15. year: 2016,
  16. };
  17. let my_old_old_mac = Pc {
  18. maker: "apple".to_string(),
  19. year: 2010,
  20. };
  21. let my_win = Pc {
  22. maker: "dell".to_string(),
  23. year: 2018,
  24. };
  25. let my_old_win = Pc {
  26. maker: "dell".to_string(),
  27. year: 2016,
  28. };
  29. let my_old_old_win = Pc {
  30. maker: "dell".to_string(),
  31. year: 2010,
  32. };
  33.  
  34. let a = [
  35. my_mac,
  36. my_old_mac,
  37. my_old_old_mac,
  38. my_win,
  39. my_old_win,
  40. my_old_old_win,
  41. ];
  42.  
  43. let mut counter: HashMap<&str, u16> = HashMap::new();
  44. counter.insert("apple", 0);
  45. counter.insert("dell", 0);
  46.  
  47. let top_k = 3;
  48. let dedupe_num = 2;
  49. let iter = a
  50. .iter()
  51. .filter(|x| {
  52. *counter.get_mut::<str>(&x.maker).unwrap() += 1;
  53. *counter.get::<str>(&x.maker).unwrap() <= dedupe_num
  54. }).take(top_k);
  55.  
  56. for it in iter {
  57. println!("{},{}", it.maker, it.year);
  58. }
  59. }
Add Comment
Please, Sign In to add comment