我是C ++的新手,我见过像这样的代码
std::vector<Element*> *interactedElems
Element
是一个类。
但不确定以下情况的差异:
std::vector<Element> *interactedElems
std::vector<Element*> interactedElems
std::vector<Element*> *interactedElems
std::vector<Element*> & interactedElems
答案 0 :(得分:2)
声明本身用于指向容器对象的指针。它包含单个Element对象。
声明本身用于容器对象。它包含指针,每个指针指向一个Element对象。
声明本身就是一个指针。它指向一个包含更多指针的向量。这些指针指向实际的元素对象。
这与#3类似,不同之处在于它是对向量而不是指针的引用。一个引用基本上是一个指针,你不能指向别的东西。
答案 1 :(得分:2)
vector
的{{1}}
Element
您可以向其添加std::vector<Element> elements;
。假设Element
具有默认构造函数,您可以使用:
Element
您可以使用以下内容从elements.push_back(Element());
获取第一个Element
elements
指向Element e = elements[0];
vector
个
Element
要将std::vector<Element>* elementsPointer;
添加到Element
,必须指向有效的内容。
elementsPointer
您可以使用以下内容从elementsPointer = new std::vector<Element>;
elementsPointer->push_back(Element());
获取第一个Element
elementsPointer
或
Element e = (*elementsPointer)[0];
指向Element e = elementsPointer->at(0);
的<{1}}个<{1}}
vector
您可以将Element
添加到std::vector<Element*> elementPointers;
。
Element*
当您从此vector
获取商品时,您会获得elementPointers.push_back(new Element);
s。
vector
指向Element*
指针Element* ePtr = elementPointers[0];
的指针
vector
为了向Element
添加std::vector<Element*>* elementPointersPointer;
指针,必须这样做
指向有效的东西。
Element
您可以使用以下内容从elementPointersPointer
获取第一个elementPointersPointer = new std::vector<Element*>;
elementPointersPointer->push_back(new Element);
Element*
或
elementPointersPointer
使用参考
使用对上述任何形式的引用就像使用C ++中任何其他类型的引用一样。
使用可以使用:
Element* ePtr = (*elementPointersPointer)[0];
或任何其他变种。