作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个名为顶点的数组,它的声明如下:
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/
我是一名优秀的程序员,十分优秀!