나는 부스터 uBLAS 벡터의 생성자 동작을 변경하려고하며 최선의 방법이 무엇인지 궁금해하고있었습니다. 나는 예를 들어, 생성자를 사용하여 2D 벡터의 구성 요소 (좌표)를 초기화 할 대신의부스트 벡터의 생성자 변경
을 :
내가 생성자에서 x와 y를 지정할 수 있도록하려면typedef boost::ublas::vector BoostVector;
double x=1;
double y=0.7;
BoostVector<double> v(2);
v(1) = x; v(2) = y; //x and y are vector components/co-ordinates
. 내가 포함 또는 부스트 벡터 클래스에서 상속하여 중,이 일을위한 인터페이스를 제공하는 새로운 클래스를 만들 수 생각하고 있어요,하지만 난 C에 비교적 새로운 해요 ++와 잘 모르겠어요
BoostVector<double> v(x,y);
부스트 벡터의 기능을 유지하는 가장 좋은 방법입니다. 특히 uBLAS 벡터 클래스에서 사용하는 템플릿 표현 최적화를 방해하고 싶지 않으므로 특히 그렇습니다. 이것에 대한 조언은 매우 감사하겠습니다. 감사합니다. 키어런
답장을 보내 주셔서 감사합니다. 나는 2 개의 좌표로 2D를 의미했습니다. 나는 이미 당신과 비슷한 Vector2 클래스를 만들었습니다. 수학 연산을위한 메소드로드가있었습니다 (제품 등). 그러나 외모에 의해 임시 직원 (temporaries)이 생겨서 많은 작업을한데 묶는 것이 정말 비효율적이라는 것을 알았습니다. 이것이 내가 BOOST uBLAS 벡터를 사용하려고하는 이유입니다. 내가 겪고있는 문제는 당신의 제안에있는 것과 같은 uBLAS 벡터에 내장 된 생성자가 없다는 것입니다; 'Vector2 (const T & x, const T & y) : mX (x), mY (y) {}' – kieranhood