inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

C++20 훑어보기

Range

ranges질문입니다

212

Jeong-ah Yoon

작성한 질문수 11

1

auto results2 = v1 | std::views::filter([](int n) { return n % 2 == 0; })

| std::views::transform([](int n) { return n * 2; })

| std::views::take(3);

 

예제에 있는 코드인데요.. 이 results2라는 것은 메모리 공간을 또 할당하는 것인가요? 아니면 메모리 공간없이 벡터에 접근해서 원하는 조건하에서 데이터를 읽어내기만 하는 것인가요?

c++

답변 1

1

Rookiss

데이터를 읽어내더라도, 그것을 임시적으로 다시 저장해야 하니
추가적인 메모리 공간 할당은 피할 수 없습니다.
이는 LINQ도 마찬가지겠죠.

0

Jeong-ah Yoon

네 그럼벡터의 크기가 엄청 큰 경우에 메모리를 할당하면서 읽어내는 것이 효율성이높은지.. 아니면 그냥 벡터의내용을 수정하는 것이 맞는것인지.. 아니면 벡터의 내용은 수정하고 싶지 않으면서 내가 설정한 조건으로 읽어낼때 유용하기 때문에 단점을 배재하고 사용하는 것인지 궁금하네요~예제에서는메모리 공간이 적었지만 실제 매우 큰 벡터를 읽어낼때도 유용한 것인지 궁금합니다

1

Rookiss

실제 코드에서 원하는 데이터만 걸러내서 작업할 때,
보통 임시 벡터를 만들어서 걸러진 넣어주고 가공을 하는 경우가 많습니다.
따라서 위 방식이 특별히 이상하진 않습니다.
데이터가 많으면 물론 느려질 순 있지만,
한번 스캔하면 O(N)이고 최대 N개의 데이터를 복사하니
그 정도는 어쩔 수 없이 감안을 해야 합니다.

벡터의 내용을 수정하는 것은 곧 원본을 건드리는 것인데,
이건 대부분의 상황에서는 불가능하기 때문에
애당초 옵션이 아닐 확률이 높습니다.

Singleton 관련 질문입니다.

1

23

2

2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.

0

50

2

AddGameFrameworkComponentReceiver vs AddExtensionHandler

0

22

0

2주차 개념#12 트리 순회

0

24

2

백준 사이트 서비스 종료

0

107

3

프로젝트 질문 문의

0

45

1

백준사이트가 종료된다고 합니다.

0

274

2

맵핑부분..

0

32

2

백준 서비스 종료

9

867

1

ABP "스테이트의 시퀀스 플레이어에 따른 자동 규칙"질문드립니다.

0

38

1

사용하시는 툴 질문 드립니다.

0

37

2

sk 하이닉스 코테 대비

0

367

2

3-G 최댓값 질문

0

50

1

문제집은 없나요 수업을 어떻게 들어야 할지 모르겠어요

0

106

2

모듈러 연산 값이 10이 아닌 경우도 있지 않나요?

0

83

2

3-I 코드 질문드립니다.

0

62

2

3-N 질문 있습니다.

0

66

2

C++23은 어떻게 생각하시는지 궁금합니다.

0

172

2

카운팅 세마포어, 바이너리 세마포어

0

368

1

내부 버퍼에 있는 값을 변수로 받을 수는 없나요?

0

322

1

StringLiteral에서 [N]은 어떻게 동작되는건가요?

0

268

1

마지막 formatter 이제 잘 작동하네요~

0

234

1

module 질문

0

280

1

게임 업계에서 C++20을 많이 쓰나요?

0

557

1