“没有匹配的成员函数push_back”
在Bjarne的原始版本中,C的矢量写得像
vector<Value_type<C>*> res;
但是这个Value_type模板也不能正常工作 所以我只是用C *指针替换它,仍然没有帮助
#include <vector>
#include <string>
#include <iostream>
using namespace std;
template <typename C, typename V>
vector<C*> find_all(C& c, V v) {
vector<C*> res;
for (auto &x : c) {
if (x==v)
res.push_back(&x);
}
return res;
}
int main() {
string s = "werqewreqwreqw";
for (const auto p : find_all(s,'q')) {
cout << p;
}
}
答案 0 :(得分:1)
var actionArray = [SKAction]()
actionArray.append(SKAction.moveTo(CGPointMake(posAutoY1, -3*frame.size.height/20), duration: NSTimeInterval(duration1)))
actionArray.append(SKAction.removeFromParent())
auto1.runAction(SKAction.sequence(actionArray))
与C*
不同。实际上,已经存在一个代表相同概念的typedef,即C::value_type*
。
C::pointer
仅供参考,template <typename C, typename V>
vector<typename C::pointer> find_all(C& c, V v) {
vector<typename C::pointer> res;
将为C::pointer
,对于默认分配器或std::allocator_traits<T>::pointer
,此为T*
。我不完全确定为什么使用value_type*
但是我假设Bjarne想要一个取代Value_type
的元函数。