map嵌套vector的问题

shike_sk 2014-03-19 05:22:34
遇到map嵌套vector的问题,不知道键、值操作上有什么区别。请各位不吝赐教。多谢。

typedef wchar unsigned short;
typedef std::map< std::vector<wchar>, std::vector<wchar> > STRING2VECTOR; //可以这样嵌套不??

STRING2VECTOR testMap;
STRING2VECTOR::iterator iter;
for(iter = testMap.begin(); iter != testMap.end(); iter++)
{
std::vector<wchar>::iterator nameiter = regexiter = iter->first.begin(); //总是出错!!!
std::vector<wchar>::iterator regexiter = regexiter = iter->second.begin(); //正常

for(; regexiter != iter->second.end(); regexiter++)//正常
{
std::cout << *regexiter << " ";
}

for(; nameiter != iter->first.end(); nameiter++)//出错
{
std::cout << *nameiter << " ";
}
}

//特别长的一段错误提示,只是提取了前两个
/*
错误: ‘operator<<’在‘std::cout << iter.std::_Rb_tree_iterator<_Tp>::operator* [with _Tp = std::pair<const std::vector<short unsigned int>, std::vector<short unsigned int> >, std::_Rb_tree_iterator<_Tp>::reference = std::pair<const std::vector<short unsigned int>, std::vector<short unsigned int> >&]().std::pair<const std::vector<short unsigned int>, std::vector<short unsigned int> >::first’中没有匹配
di.cpp:81:24: 附注: 备选是:
/usr/include/c++/4.6/ostream:110:7: 附注: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__ostream_type& (*)(std::basic_ostream<_CharT, _Traits>::__ostream_type&)) [with _CharT = char, _Traits = std::char_traits<char>, std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>]
*/
...全文
455 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
翅膀又硬了 2014-03-24
  • 打赏
  • 举报
回复
引用 7 楼 majianwei0705 的回复:
[quote=引用 3 楼 sniffer12345 的回复:] 公司一菜鸟曾经这样写过,至今还被我们当笑料。
额, 可以 map<CString,vector<xxx>> 这样用的吧? 我在项目中这样用过,不知道会不会被笑话 [/quote]可以
ithiker 2014-03-23
  • 打赏
  • 举报
回复
vector<wchar>?为什么要用这个 string本身就有宽字符版本:wstring,就可以实现vector<wchar>,用wstring版本的对象作为key就不存在你的那个问题了
zzyoucan 2014-03-23
  • 打赏
  • 举报
回复
map的key要唯一,不知vector能不能作为key,并且map自动排序,这样也要重写比较器
V_wo独尊 2014-03-21
  • 打赏
  • 举报
回复
引用 3 楼 sniffer12345 的回复:
公司一菜鸟曾经这样写过,至今还被我们当笑料。
额, 可以 map<CString,vector<xxx>> 这样用的吧? 我在项目中这样用过,不知道会不会被笑话
渡世白玉 2014-03-21
  • 打赏
  • 举报
回复
map会在你插入时排序的、、key不允许更改,你需要改key就重新插入、、 如果你只是两个vector结构体的话,pair很适合你的需求、、std::pair<std::vector<int> , std::vector<int> > tuple也可以(这个要C++11)、、
shike_sk 2014-03-20
  • 打赏
  • 举报
回复
引用 3 楼 sniffer12345 的回复:
公司一菜鸟曾经这样写过,至今还被我们当笑料。
菜鸟不怕被笑话,笑话多了就好了。 具体帮着解释下啊。
shike_sk 2014-03-20
  • 打赏
  • 举报
回复
引用 1 楼 mougaidong 的回复:
map的建是不能更改的
具体解释下呗。多谢。
sniffer12345 2014-03-19
  • 打赏
  • 举报
回复
公司一菜鸟曾经这样写过,至今还被我们当笑料。
waterSStreaming 2014-03-19
  • 打赏
  • 举报
回复
写成这样需求分析和问题抽象都有问题
turing-complete 2014-03-19
  • 打赏
  • 举报
回复
map的建是不能更改的

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧