0부터 N까지 넣어버리고 싶은데
vector<int> from(N+1, /* your code goes here? */)
하면 from의 모양이
[0,1,2,...,N] 이렇게 들어가게 하고싶은데
함슬람의 힘으로 가능한가요?
0부터 N까지 넣어버리고 싶은데
vector<int> from(N+1, /* your code goes here? */)
하면 from의 모양이
[0,1,2,...,N] 이렇게 들어가게 하고싶은데
함슬람의 힘으로 가능한가요?
이건 무슨 언어인데 저 괄호 안에 람다가 들어가냐
ㄴ 들어가는디 - return 0;
정확히는 람다를 넣는게 아니라 벡터를 반환하는 람다를 넣고 리터럴을 바로 실행하면 됨 끝에다가 () 붙여서 - return 0;
근데 저기에 넣기보다는 expression 형태로 = 써서 쓰는게 더 좋을꺼임 - return 0;
바로 못만듦
ㄴ 바로 만들 수 있음 - return 0;
람다로 이터레이터 만들고 이터레이터 생성자 이용함
ㄴ 그 방법도 있고 ㅇㅇ - return 0;
벡터를 만드는 람다면 이미 람다의 의미가없음
시바 저게 생성자가 아니라 함수냐?
이터레이터를 만들면 다른 자료구조에도 적용할슨있어서 조음 부스트에 있을거임
ㄴㄴ 표현식 형태라서 가독성을 위해 그렇게 하는걸 권장하는거 봤었음 - return 0;
암튼 STL은 바로 람다 잘 안쓰고 이터레이터를 한번 경유하니까 거기에 편의함수만 하나 만들면 함수형으로 생성 가능
뇌피셜이긴한데 생성하는 과정에서 맵필터리듀스도 될듯
그게 레인지 아닌? - return 0;
조잡하게 매크로로 만들어봄
#define VECTOR_INT_RANGE(FROM, LENGTH) \[]() {\ static int i = FROM;\ vector<int> x(LENGTH);\ generate_n(x.begin(), LENGTH, []() {return i++; });\ return x;\ }()
unfold요
vector<int> v(VECTOR_INT_RANGE(3, 10)); 이런식으로 쓰면 v에 3 ~ 12 들어감
굳이 매크로 안 만들고 바로 람다 때려 박아도 되긴 한데 가독성을 해침
ㄴ 그게 가독성 좋은건데 - return 0;
vector<int> v([]() { static int i = 3; vector<int> x(10); generate_n(x.begin(), 10, []() {return i++; }); return x; }()); 보다 vector<int> v(VECTOR_INT_RANGE(3, 10)); 가 더 보기 좋지 않나여
아 DC 댓글 개행 씹어버리는구나..
여튼 뭐 둘이 의미는 같으니까..
후자는 못 알아들을 염려가 있지 않나 싶음 - return 0;
와 함슬람 + C++ ... 함슬람 입문자로써는 알아들을 수가 없ㄴ!다
ㄴ 흠.. 그렇게 생각할 수도 있겠네요..