C++ Can';不显示地图数据 //已创建映射 标准::地图(map); //插入的键/数据 _insert(std::pair(0,{i})); //显示值[错误] 用于(常数自动和p:_映射) { std::cout

C++ Can';不显示地图数据 //已创建映射 标准::地图(map); //插入的键/数据 _insert(std::pair(0,{i})); //显示值[错误] 用于(常数自动和p:_映射) { std::cout,c++,dictionary,vector,C++,Dictionary,Vector,p.second在std::vector中,标准库不重载操作符p.second在std::vector中,标准库不重载操作符或者,您可以使用std::copy std::cout << "m[" << p.first << "] = {"; for (int n : p.second) std::cout << ' ' << n; std::cout << " }\n"; std::copy(p.secon

p.second
std::vector
中,标准库不重载
操作符
p.second
std::vector
中,标准库不重载
操作符或者,您可以使用
std::copy

std::cout << "m[" << p.first << "] = {";
for (int n : p.second)
     std::cout << ' ' << n;
std::cout << " }\n";   
std::copy(p.second.begin()、p.second.end()、std::ostream\u迭代器(std::cout,”);
对于更通用的解决方案,我建议使用great。该库使您的代码无需进一步修改即可工作:

std::copy(p.second.begin(), p.second.end(), std::ostream_iterator<int>(std::cout, " "));

std::cout或者,您可以使用
std::copy

std::cout << "m[" << p.first << "] = {";
for (int n : p.second)
     std::cout << ' ' << n;
std::cout << " }\n";   
std::copy(p.second.begin()、p.second.end()、std::ostream\u迭代器(std::cout,”);
对于更通用的解决方案,我建议使用great。该库使您的代码无需进一步修改即可工作:

std::copy(p.second.begin(), p.second.end(), std::ostream_iterator<int>(std::cout, " "));

std::cout您必须自己为
std::vector
定义
运算符>>

std::cout << p.second << std::endl;
模板
std::ostream&operator>>(std::ostream&out,const std::vector&vec){
std::copy(vec.begin()、vec.end()、std::ostream_迭代器(out)(“”);
返回;
}
添加此定义后,代码将按原样工作

template <typename T>
std::ostream & operator >>(std::ostream & out, const std::vector<T> & vec) {
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<T>(out, " "));
    return out;
}
for(const auto&p:_map){

std::cout您必须自己为
std::vector
定义
运算符>>

std::cout << p.second << std::endl;
模板
std::ostream&operator>>(std::ostream&out,const std::vector&vec){
std::copy(vec.begin()、vec.end()、std::ostream_迭代器(out)(“”);
返回;
}
添加此定义后,代码将按原样工作

template <typename T>
std::ostream & operator >>(std::ostream & out, const std::vector<T> & vec) {
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<T>(out, " "));
    return out;
}
for(const auto&p:_map){

std::cout你认为p.second返回什么?它返回一个整数向量,因此你需要编写一个内部for循环来遍历该向量并在那里打印整数。一个向量不定义I不能访问p.second值,那么我如何使用它来创建嵌套循环?你能给出一个小例子吗?谢谢你可以访问它.std::cout没有运算符。你认为p.second返回什么?它返回一个int向量,因此你需要编写一个内部for循环来遍历该向量并在那里打印int。向量不定义I不能访问p.second值,那么我如何使用它来创建嵌套循环?你能给出一个小例子吗?thank youYou可以访问它。std::cout没有运算符。我喜欢它是一条单行指令。让我删除关于这种方法方便性的注释,以便以更中性的方式表示它。我喜欢它是一条单行指令。让我删除关于这种方法方便性的注释,以便将它表示出来n以更中立的方式。