我想獲得一個迭代器到我的向量shared_ptr。它給我2編譯錯誤:共享指針的向量迭代器
syntax error : missing ';' before identifier 'begin'
missing type specifier - int assumed. Note: C++ does not support default-int
在代碼中,如果我用字符串或基本的東西替換矢量的條目類型,它編譯。 [當然那不是我想要的]。這是怎麼回事?
#include <vector>
#include <unordered_map>
#include <memory>
template<class _Kty, class _Ty> class MyClass {
public:
typedef std::shared_ptr<std::pair<_Kty, _Ty>> Entry;
// Vector containing pairs of the key & value
std::vector<Entry> container;
// Beginning iterator to the vector part
std::vector<Entry>::iterator begin() noexcept {
return containervector.begin();
}
};
工作!但我有另一個問題。我將typedef行改爲:typedef std :: string Entry;它編譯。爲什麼我需要shared_ptr版本的代碼的類型名稱? [&不是字符串版本] – RandomClown 2014-09-06 21:08:34
@RandomClown:已更新 – 2014-09-06 21:18:00