gpt4 book ai didi

c++ - 如何将数组添加到列表?

转载 作者:行者123 更新时间:2023-11-30 02:01:40 26 4
gpt4 key购买 nike

我有一个名为顶点的数组,它的声明如下:

  CPoint vertices[11];

然后我有一个名为 _m_ElementList_ 的列表

  std::list<CPoint[11]> m_ElementList;

使用 AddElement() 我想向这个列表中添加元素,每个元素都是 CPoint 对象的数组(即与顶点类型相同)

void AddElement(CPoint* vertices)
{ m_ElementList.push_back(vertices); }

由于某种原因不起作用,它告诉我没有函数实例与参数列表匹配 - 为什么会这样,我应该怎么做?

最佳答案

使用原始数组和指针的想法从一开始就是错误的。您已经在使用 std::list (即你似乎知道标准容器),那为什么不使用 std::vector<CPoint>还?这将使您的生活变得轻松:

std::list<std::vector<CPoint>> m_ElementList;

然后:

void AddElement(std::vector<CPoint> vertices)  //C++11
{
m_ElementList.push_back(std::move(vertices)); //move
}

如果您的编译器不支持 C++11,则通过引用传递为:

void AddElement(std::vector<CPoint> const & vertices) //C++03
{
m_ElementList.push_back(vertices); //copy
}

作为旁注,我认为 AddVertices会是一个更好的名字。

关于c++ - 如何将数组添加到列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13883488/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com