boost::tuple documentation에 따르면 튜플의 단일 요소에 액세스하는 것은 멤버 변수에 액세스하는 것과 동일한 성능을 제공합니다. 내가 경우부스트 튜플 성능
t1.get<2>();
t2.c;
내가 부스트의 근원 :: 튜플로 보았다 :
tuple<A, B, C> t1(A(), B(), C());
struct T { A a; B b; C c; }
T t2;
이 두 문장이 동일한 (또는 무시할 차이) 성능을 가져야한다 : 예를 들어, 다음 선언을 제공
C get<2>(tuple<A, B, C>& t)
{
return t.tail.tail.head;
//Generally: return t.tail. <<N times>> .head;
}
이이 디렉토리보다 링크 된 목록에서 룩업에 더 유사합니다, get<N>
기능은 실제로이 작업을 수행하는 (나는 내가 한 확실하지 않다) 정확하게 이해 (undestand) 한도 내에서 O (1) 대신 O (N) 복잡성을 가지며 이는 구성원 액세스에서 예상됩니다. 후원에 대한 나의 과거의 경험에서, 나는 잘못 생각한 것 같습니다. 하지만 내 실수는 뭐니? get
은 실제로 어떻게 작동합니까?
나는 컴파일 시간 최적화에 크게 의존한다고 생각한다. – Bwmat