[[TableOfContents]] == 개요 == 시간 : 오후 6ì‹œ ~ 8ì‹œ 장소 : 6층 실습실 == ì°¸ê°€ì› == || ë©˜í† || [장용운] || ì¶œì„ || ||<|5> 멘티 || [15ì´ì›ì¤€] || ì¶œì„ || || [ë°•ì¸ì„œ] || ì¶œì„ || == ì´ë²ˆì— 배울 것 == * lamda expression == 스터디 진행 == * auto : nameì´ ê¸¸ ë•Œ(Type ì—°ì— ê°€ëŠ¥) * 길어지는 ì´ìœ * :: -> í´ëž˜ìŠ¤, 바깥 Scope, enum, struct, namespaceì—ì„œ 씀 * <> -> 템플릿 * 파ë¼ë¯¸í„°ëŠ” auto 안ë¨. range based forì—ì„œ 주로 씀. * uniform 초기화 * 초기화 ì‹œ = : 복사 ìƒì„±ìž * ë°°ì—´ : ê°’ì´ ì—¬ëŸ¬ê°œ * 초기화 ë°©ë²•ì„ {}ë¡œ í†µì¼ * ë°°ì—´ì„ ë™ì í• ë‹¹ í• ë•Œë„ ì´ìš© 가능 * initializer_list * ì–´ë–¤ ê°’ì´ ì˜¬ì§€ ëª¨ë¥´ê² ëŠ” 경우 그냥 initalizer_listë¡œ 하면 가변 ì¸ìžì˜ ê°’ì„ ë°›ì„ ìˆ˜ 있다. * Reference * ì¢‹ì€ ê±°ì§€ë§Œ 단ì : 참조하는 ê²ƒì´ ì‹¤ì œ 존재하는 변수 -> 다시 바꾸기 힘듬. ìƒìˆ˜ê°€ 들어갈 수 없다. * ë ˆí¼ëŸ°ìŠ¤ì™€ ë ˆí¼ëŸ°ìŠ¤ ì•„ë‹Œ ê²ƒì„ ì˜¤ë²„ë¡œë”©í•˜ë©´ ìœ„ì— ìžˆëŠ”ê±° 실행(ë ˆí¼ëŸ°ìŠ¤ë¡œ 오버로딩 ëœ ê²ƒì„ ìœ„ë¡œ 올리ìž.) * rvalue Reference * rvalue : 대입 ì—°ì‚°ìžì—ì„œ 오른쪽ì—만 오는 것(ìƒìˆ˜, ìž„ì‹œê°ì²´) * 표시 : && * 대표ì 예 : move semantics->move constructor, move operator * move <-> copy * Car(Car &&)->shallow copy+ì›ë³¸ ë°ì´í„° í¬ì¸í„° null * ì—°ì‚°ìž ì˜¤ë²„ë¡œë”© * 0.5+c하면 ì˜¤ë²„ë¡œë”©ì´ ì•ˆë¨. * ì „ì²´ 오버로딩-> C operator+(float l, complex r){return r+l;} * friend : ë‚´ê°€ ë§Œë“ ê²ƒì„ ìƒëŒ€ë°©ì—게 열어줌 * STL : Container, Algorithm, Iterator -> std::find(시작ì ,ëì ,ê°’) : 있으면 ì´í„°ë ˆì´í„°ë¡œ 위치, 없으면 ëì * Algorithm -> 함수를 ìž…ë ¥(함수í¬ì¸í„°, Function Object(()ì—°ì‚°ìž ì˜¤ë²„ë¡œë”©, <functional>ì„ include 해야ë¨.) 등) * 함수를 즉ì„í•´ì„œ ì¸ë¼ì¸ 한다 - 함수가 들어갈 ìžë¦¬ê°€ definition & ìµëª… * ì´ê²ƒì´ 오늘 배울 '''Lamda Expression'''ì´ë‹¤. * '''ì´ë¦„ì´ ì—†ë‹¤!!!''' * [],(),{} 으로 표시 * []<-캡ì³ë¸”ë¡,(ì¸ìž),exepction list->ret type{함수코드} * ì¸ìžì™€ 함수코드는 함수 ì§œë“¯ì´ ì§œë©´ ëœë‹¤. * 캡ì³ë¸”ë¡ : ì¸ìž ì™¸ì— ê°’ì„ ë„˜ê²¨ì¤„ 수 ìžˆìŒ {{{ ex. std::find_if(시작ì ,ëì ,함수) 함수는 boolíƒ€ìž…ì„ ë¦¬í„´í•´ì•¼ë¨ í•¨ìˆ˜ì— Lamda Expressionì„ ë„£ëŠ”ë‹¤ê³ ê°€ì • int compare; [compare](int c) {return c==compare;} }}} * 캡ì³ë¸”ë¡ì— ê°’ì´ ì—†ìœ¼ë©´ 사용 불가능 * 그냥 캡ì³ë¸”ë¡ì— 넣으면 ê°’ 변경 불가능 * &를 붙ì´ë©´ ë ˆí¼ëŸ°ìŠ¤ë¡œ ìº¡ì³ : 변경 가능 {{{ [&] : ë°–ì— ìžˆëŠ” ëª¨ë“ ë³€ìˆ˜ë¥¼ ë ˆí¼ëŸ°ìŠ¤ë¡œ ìº¡ì³ [=] : ë°–ì— ìžˆëŠ” ëª¨ë“ ë³€ìˆ˜ë¥¼ 값으로 ìº¡ì³ [&,x] : x만 값으로 ìº¡ì³ [=,&x] : x만 ë ˆí¼ëŸ°ìŠ¤ë¡œ ìº¡ì³ }}} * prototype signature {{{ [x](int c){return Foo(c,x);} }}} * type alias * Cì—서는 typedef, C++ì—서는 using~~using namespace std; 아님~~ * using 새ì´ë¦„=í—Œì´ë¦„; * 함수 ì •ì˜ì˜ 새로운 방법 * auto ì´ë¦„(ì¸ìž)예외처리->리턴타입 * templateì—ì„œ 기존 í•¨ìˆ˜ì˜ ì •ì˜ëŒ€ë¡œ 하면 리턴 타입 ì •ì˜ê°€ ì• ë§¤ * unexpected_handler ---- == ìž¡ë‹´ == --------------------------------------------------------------------- [활ë™ì§€ë„/2016] [CppALL]