위한 기초 :액세스 포인터 I 이런 동적 배열 래퍼 템플릿이 루프
루프를 통한 값과 기준 액세스 제공class Wrapper {
public:
T* const start;
T* const end;
T* begin() const { return start; }
T* end() const { return end; }
/*
more code
*/
};
:
Wrapper<T> wrapper;
for(auto val : wrapper) {
//do smth to value
}
for(auto& ref : wrapper) {
//do smth to reference
}
한다.
for(auto ptr = wrapper.start; ptr != wrapper.end; ptr++) {
//do smth to pointer
}
, 내가 포인터에 대한 액세스 권한을 부여 래퍼를 통해 범위를 기반으로 루프를 원하는 즉 : 지금이에 해당 루프를 기반으로 범위를 만들려고합니다. 내 래퍼 내부에 포인터에 대한 포인터 배열을 만들지 않고이 작업을 수행 할 수있는 방법이 있습니까?
편집 : 이미 here 지적 된 바와 같이 주석의
이대니의 솔루션은 작동합니다. 실제로 다음 구문을 작성하는 방법이 있는지 궁금합니다.
for(auto ptr : wrapper) {
//do smth
}
이 위의 C 스타일 for 루프로 사용됩니다.
참조 번호 – Dani
에서 포인터를 가져올 수 있습니다. 'for (auto & ref : wrapper) {auto ptr = &ref;}'과 같은 의미입니까? 어쨌든'begin()'과'end()'메쏘드를 변경하여 암묵적으로 이것을 작동 시키도록 할 수 있습니까 : for (auto ptr : wrapper) {/ * do smth * /}'? –