- 그냥 함수는 호출 시점마다 함수 호출 과정을 거칩니다. 함수가 많이 호출되면 그만큼 속도도 현저하게 느려지는 오버헤드 현상이 발생합니다. - 위의 단점을 보안하기 위해 나온것이 inline함수입니다. inline 함수는 컴파일 단계에서 처리가 진행 됨으로, 해당 inline 함수를 호출하는것은 미리 바로 리턴값이 호출되게 변환시켜둡니다. 장점 :함수 호출 오버헤드가 발생하지 않습니다. 단점 :1. 실행 코드가 길어집니다.2. 구현이 길어지면 컴파일러가 일반 함수로 취급합니다.3. 인라인 함수를 자주 사용하면 같은 코드 중복으로 바이너리 실행 파일이 커집니다.4. 인라인 함수가 변경되면 전체 코드가 변경사항을 반영해야함으로, 컴파일 시간 오버헤드가 발생합니다. 결론 : 그냥 함수들은 주소값을 이용..
- map erase는 정확한 key값을 넣으면 삭제한 개수를 반환하지만, iterator로 erase하면 방금 지운 iterator의 다음 iterator를 반환 합니다. ex)cout for (auto iter = mp.begin(); iter != mp.end();) { cout second iter = mp.erase(iter); // iter는 다음 iter 반환}
await, .Result의 차이 => await는 비동기로 요청 대기, Result는 동기로 요청 대기. 1. HttpClient 객체를 만듭니다. using (HttpClient client = new HttpClient()) 2. 요청 url을 만듭니다. ( string url = $"https://jsonmock.hackerrank.com/api/football_matches?year={year}&{teamType}={team}&page={currentPage}"; ) 3. HttpResponseMessage와 await, GetAsync(url)로 메시지 요청 후에 비동기로 응답 메시지를 받을 준비를 합니다.( HttpResponseMessage response = await client.Get..