2
내가 버퍼를 가지고이 벡터, 만든 그런 다음벡터 ++
std::vector<std::unique_ptr<locked_buffer<std::pair<int, std::vector<std::vector<unsigned char>>>>>> v1;
을, 나는 n
버퍼이 벡터를 작성하고이 버퍼는 aux
요소를 가지고있다. n
은 인수 인 int입니다. aux
도 int 유형 인 또 다른 인수입니다.
for(int i=0; i<n; i++){
v1.push_back(std::unique_ptr<locked_buffer<std::pair<int,std::vector<std::vector<unsigned char>>>>> (new locked_buffer<std::pair<int, std::vector<std::vector<unsigned char>>>>(aux)));
}
하지만 난 분명히 가지고하지 않았기 때문에 나는 벡터 구조의 특정 요소에 액세스 할 수있는 방법, 난 못해 벡터의 각 버퍼에 액세스하려고 할 때 :
v1[0].put(image, false);
error: ‘_gnu_cxx::_alloc_traits<std::allocator<std::unique_ptr<locked_buffer<std::pair<int, std::vector<std::vector<unsigned char> > > > > > >::value_type {aka class std::unique_ptr<locked_buffer<std::pair<int, std::vector<std::vector<unsigned char> > > > >}’ has no member named ‘put’
v1[i].put(image, false);
감사 : 내가있어
컴파일 에러합니다 (put
기능이 내 사용자 정의 locked_buffer
구조에 정의)은 다음 중 하나입니다.
난 당신이'unique_ptr' 역 참조에 필요가 있다고 생각합니다, 그래서 ['내가를 V1을 ] -> put ... ' – yassin
2 차원 행렬로 끝나는 double 벡터입니까? 또한, 이것은'using '을 사용하기에 좋은 장소입니다. 예를 들어 myBufferType = std :: pair >>; 템플릿을 사용하는 템플릿 과 같은 형식을 사용하면 'std :: unique_ptr >>' –
RyanP