【发布时间】:2018-09-25 14:10:00
【问题描述】:
我正在尝试制作一对共享指针并将其推送到列表中并出现错误。
错误在list_of_objects_combination.push_back()这一行
我的代码有什么问题?
没有匹配的调用函数 'Objects::Objects(__gnu_cxx::__normal_iterator*, std::vector > >&)' { ::new((void *)__p) _Up(std::forward<_args>(__args)...); }
void MyClass::getCombination(std::vector<std::shared_ptr< Objects>> m_list_objects,
std::vector<std::pair<std::shared_ptr<Objects>, std::shared_ptr<Objects>>> &list_of_objects_combination) {
std::vector<std::shared_ptr< Objects>>::const_iterator objectIterator = m_list_objects.begin();
std::vector<std::shared_ptr<Objects>>::const_iterator objectIteratorNext;
for (; objectIterator < m_list_objects.end(); objectIterator++) {
for (objectIteratorNext = objectIterator + 1; objectIteratorNext < m_list_objects.end();
objectIteratorNext++) {
list_of_objects_combination.push_back(std::make_pair(std::make_shared<Objects>(objectIterator),
std::make_shared<Objects>(objectIteratorNext)));
}
}
}
【问题讨论】:
-
您的 sn-p 可以从某些类型别名中受益。
标签: c++ vector shared-ptr