배열 내의 범위를 반환하는 함수를 작성해야합니다 (원하는 경우 시작 위치와 길이로 지정되어 있다고 가정 할 수 있습니다). 튜플을 반환 할 수 없기 때문에 다른 형식을 반환해야합니다 (어쨌든 좋은 생각 일 수도 있습니다). 지금, 나는 모두 (어느 정도) 표준이고 등으로 인해 vtable을, 복잡한 ctors범위 (배열 인덱스)에는 어떤 유형을 사용해야합니까?
마음에 와서 옵션에 성능 저하를 발생하지 않는 무언가를 반환하고 싶은 것은 다음과 같습니다
std::pair<unsigned>
(또는std::pair<size_t>
).- 구조체는
unsigned
(또는size_t
의 두 개)을 래핑합니다. - 내 자신의 Range 클래스를 굴리고 실용적인 방법으로 설탕 코팅하십시오.
적절한 Range 클래스를 찾으려고 시도했지만 찾을 수 없습니다. 표준 라이브러리/STL에서 클래스에 대해 범위를 사용하지 않는 것은 이상한 일입니다.
더 좋은 대안이 있습니까? 그리고 그렇지 않은 경우 위의 권장 사항 중 어느 것이 좋습니다?
반복자 쌍? – ForEveR
@ForEveR : 성능면에서 합리적인 것으로 보이지 않습니다. 또한,이 범위의 사용에 필요하지 않은 추상화의 또 다른 측면을 추가합니다. 어떤 코드는 반복을 위해 그것을 사용할 수 있고, 다른 코드는 말하자면'memcpy()'배열의 일부일 수 있습니다. – einpoklum
@einpoklum bullshit. 포인터는 반복자입니다. 반복자가 합리적인 퍼포먼스에 부합하지 않는다고 가정하면 초점 맞추기 중심의 프로그래밍에 꽤 많은 액수가 걸린다. –