概述
从C++11
以后,语言的新特性增加得越来越多,在实际使用过程中这些特性容易将错误提前在编译器暴露出来,记录一下C++
程序编译过程中,出现的那些错误:
【错误1】无法从"const _Ty2"转换为"value_type&"
使用了const_iterator,并且需要修改值;将迭代器const_iterator
修改为iterator
即可;
【错误2】 std::pair<key_type, value_type> std::make_pair<key_type, value_type>(_Ty && _Ty2 &&) noexcept(expr)
:无法将参数1从“const key_type”转换为“_Ty1 &&”
std::make_pair<key_type, value_type>(key, value_type());
// 错误
std::pair<key_type, value_type>(key, value_type());
// 正确
【错误3】二进制类型“[”:没有找到接受“const std::unordered_map<>”类型左操作数的运算符(或没有可接受的转换);
void filtered(const int &key) const noexcept
// const表明该函数不能对类的成员变量进行修改
{
//hash_map[key];
错误
hash_map.at(key);
}
【错误4】 二进制“<”:“const_Ty”不定义该运算符或到预定义运算符可接收的类型转换
std::set<list_iterator> filter(const int &key) const noexcept
{
std::set<list_iterator> res;
......
res.insert(hash_map[key]);
// 错误,没有重载list_iterator的operator < 运算符,编译报错
}
最后
以上就是专一机器猫为你收集整理的【C++】编译报错的全部内容,希望文章能够帮你解决【C++】编译报错所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复