Ben C++ için yeni ve vektörün öğeleri çok küçük bir sorun var. Bu işaretçiler için bir vektör sınıfı A myStruct için:Yapıları + işaretçi türü için işaretçi vektöründe interator tarafından işaret edilen öğeler gerekli
struct myStruct{
int val;
string name;
}myStruct;
Class A{
...
vector<myStruct*> vec;
B create()const;
}
Class B{
...
string Name(); //return name of current struct
vector<myStruct*>::iterator beginning;
int offset; //offset from the beginning
}
sınıfı B sınıfı bir nesne oluşturulur bir yöntem create()const
sahiptir. Bazı özellikleriyle, vec
'un bir kısmına gitmek için bir çeşit yineleyici gibi çalışılması gerekiyor. yöntem Name()
, ben Class B
yeni nesne oluşturmak A.create()
yılında aşağı konumdayken vec[offset]
üzerinde myStruct
itibaren name
dönmek lower_bound()
tarafından vec
ait tekrarlanan kısmının başlangıcını seçin ve new_object.beginning
koymak gerekiyordu.
Ben B.Name()
uygulamak istiyorum
beginning
hareketli ve kaldırma tarafından
vec
yılında yapılar unsurlarını erişebilirler. Bir komutun doğru şekli nedir, istediğimi yapar - yineleyiciyi
beginning
doğru şekilde dereference?
benim IDE tamamlama *(*(beginning + offset))->name
gibi bir şey bana yol vardır, ama sonra bir hataya ne istersem verecek bir komutun doğru biçimi nedir Pointer type is required