- 论坛徽章:
- 0
|
#include <map>
#include <string>
using namespace std;
int main()
{
map<string, string> _map;
const map<string, string>& _map1 = _map;
// map<string,string>::iterator iter = _map.begin(); // 这个可以
map<string,string>::iterator iter = _map1.begin(); // 这个报错
}
iter 赋值的两行上面的能编译通过,下面那行编译报错(分别用g++和sun CC编译器),
>g++ ref.cpp
ref.cpp: In function `int main()':
ref.cpp:10: error: conversion from `std::_Rb_tree_const_iterator<std::pair<const std::string, std::string> >' to non-scalar type `std::_Rb_tree_iterator<std::pair<const std::string, std::string> >' requested
>CC ref.cpp
"ref.cpp", line 10: Error: Cannot use __rwstd::__rb_tree<std::string, std::pair<const std::string, std::string>, __rwstd::__select1st<std::pair<const std::string, std::string>, std::string>, std::less<std::string>, std::allocator<std::pair<const std::string, std::string>>>::const_iterator to initialize __rwstd::__rb_tree<std::string, std::pair<const std::string, std::string>, __rwstd::__select1st<std::pair<const std::string, std::string>, std::string>, std::less<std::string>, std::allocator<std::pair<const std::string, std::string>>>::iterator.
1 Error(s) detected. |
|