sm

1006 Sign In and Sign Out (25point(s)) Easy only once *cmp sort排序问题

风格不统一 提交于 2020-01-13 18:10:54
基本思想: 1.使用类输入,构造成一个序列; 2.直接两次排序; 关键点: 注意sort和cmp的返回值和构造问题; 1 #include<iostream> 2 #include<stdlib.h> 3 #include<stdio.h> 4 #include<vector> 5 #include<string> 6 #include<math.h> 7 #include<algorithm> 8 using namespace std; 9 using std::vector; 10 struct student{ 11 char id[16]; 12 int sh; 13 int sm; 14 int ss; 15 int eh; 16 int em; 17 int es; 18 }; 19 vector<student>vec; 20 bool flag = false; 21 bool cmp(student a, student b) { 22 if (flag) { 23 if (a.sh != b.sh) 24 return a.sh > b.sh; 25 else if (a.sm != b.sm) 26 return a.sm > b.sm; 27 else 28 return a.ss > b.ss; 29 } 30 else { 31 if (a.eh !=

golang 1.8 并发安全Map简单实现

我怕爱的太早我们不能终老 提交于 2019-12-05 00:11:21
type SafeMap struct { sync.RWMutex Map map [ int64 ] string } func NewSafeMap(size int ) *SafeMap { sm := new (SafeMap) sm.Map = make ( map [ int64 ] string , size) return sm } func (sm *SafeMap) ReadMap(key int64 ) string { sm.RLock() value := sm.Map[key] sm.RUnlock() return value } func (sm *SafeMap) WriteMap(key int64 , value string ) { sm.Lock() sm.Map[key] = value sm.Unlock() } // 用于for k,_ := range m.Keys(){v := m.ReadMap(k) ....} func (sm *SafeMap) Keys() [] int64 { sm.RLock() value := make ([] int64 , 0 ) for k, _ := range sm.Map { value = append (value, k) } sm.RUnlock() return value