【发布时间】:2015-05-07 04:34:06
【问题描述】:
我有一个包含映射的双端队列,我正在尝试通过映射键删除一个元素。
这是我的尝试,但它不起作用:
typedef map<string,string> mmap;
deque<mmap> q_map;
int main()
{
mmap m;
m.insert(std::make_pair("S180","11111111111"));
q_map.push_back(m);
std::cout << q_map.front().find("S180")->first << " " << q_map.front().find("S180")->second << std::endl;
q_map.erase(std::remove(q_map.begin(), q_map.end(), q_map.front().find("S180")->first), q_map.end());
std::cout << "=================================" << std::endl;
}
我总是收到这个错误:
error: cannot convert ‘std::_Deque_iterator<std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >*>’ to ‘const char*’ for argument ‘1’ to ‘int remove(const char*)’
【问题讨论】:
标签: c++ dictionary deque