C++,迭代器到std::map
C++, iterator to std::map
如何将迭代器声明到
std::map <T, Point <T> *> ,
哪里:
template <typename T>
struct TList
{
typedef std::vector < std::map <T, Point <T> *> > Type;
};
在下面的代码中
int main ()
{
....
std::map <T, Point <T> *> ::iterator i_map; //Error
...
}
G++ 显示此错误:
error: dependent-name ` std::map<T,Point<T>*,std::less<_Key>,std::allocator<std::pair<const T, Point<T>*> > >::iterator' is parsed as a non-type, but instantiation yields a type
note: say `typename std::map<T,Point<T>*,std::less<_Key>,std::allocator<std::pair<const T, Point<T>*> > >::iterator' if a type is meant
将typename
用作:
typename std::map<T, Point <T> *>::iterator i_map;
//^^^^^^^^ here!
因为iterator
是一个依赖名称(因为它取决于映射的类型参数T
),所以这里需要typename
。
阅读此常见问题解答以获取详细说明:
我必须在哪里以及为什么必须放置"模板"和"类型名称"关键字?
typename std::map <T, Point <T> *> ::iterator i_map;
有效吗?
typename TList<T>::Type::value_type::iterator
呢?
把"typename
"放在错误行之前:std::map <T, Point <T> *> ::iterator i_map;
。
例:
typename vector<T>::iterator vIdx;
// On your case : typename std::map <T, Point<T>*>::iterator i_map;
vIdx= find(oVector->begin(), oVector->end(), pElementToFind); //To my case
相关文章:
- 存储在 std::map/std::set 中,与在存储所有数据后对向量进行排序
- 如何在<N>不发生内存泄漏的情况下同时(线程安全)填充 c++11 std::map<std::string,std::bitset*>?
- 无法在 std::map<std::string,std::shared_ptr 中设置值<class>>
- 如何在C++中迭代集合映射(std::map<std::set< char>, int >)?
- 如何初始化结构字段 std::map<std::string, std::string>称为参数
- issue with std::map std::find
- 为什么 std::map< std::map >不释放内存?
- C++ map<std::string> vs map<char *> 性能(我知道,"again?" )
- 确定运行时std::map/std::set的内存使用情况
- 映射上的模板参数无效 std::map< std::string, Stock*> &Stock
- 我的SFINAE检查std::map/std::vector有什么问题
- 使用 std::map<std::string, int> 计算表达式树
- 将数据从两种不同的数据结构插入 std::map <std::string, int> mymap 并通过套接字发送
- 类中的编译器错误,数据类型为 typedef map<std::string,std::p air<std::string,vector<int>>> MapPai
- C++ std::map<std::string, std::set<std::string>> .如何循环设置值?
- 如何填写和访问 std::map<std::p air<enum1, enum2>, funcPtr>?
- 二进制'<':找不到 map<std::string shared_ptr 的运算符<Foo>>
- 如何将 2 个字符* 数组直接映射到 std::map<std::string,std::string>
- C++ std::map<std::string, int> 获取键以特定字符串开头的值
- 从取消引用的迭代器返回 std::map<std::string, int> 时出现巨大的内存泄漏