数组三元组求和问题:C++代码编译错误排查求助
编译错误原因及解决办法
- 错误本质:你调用
push_back时混淆了容器存储的类型——你的结果容器应该是用于存放三元组的二维容器(比如vector<vector<int>>),但你直接往里面传入了单个int值,类型不匹配导致编译失败。 - 错误代码示例:大概率你写了类似这样的代码:
vector<vector<int>> res; // 找到符合条件的数后 res.push_back(5); // 这里5是int类型,而res需要接收vector<int>类型的三元组
- 修正写法:把三个符合条件的数打包成
vector<int>再传入push_back,两种方式都可行:- 用初始化列表直接构造三元组:
res.push_back({5,5,2});- 先创建三元组容器再传入:
vector<int> triplet; triplet.push_back(5); triplet.push_back(5); triplet.push_back(2); res.push_back(triplet); - 额外检查:确认你的结果容器定义是
vector<vector<int>>,而非vector<int>——前者才是存放多个三元组的正确类型。
内容的提问来源于stack exchange,提问作者Harshvardhan Singh
相关产品推荐
相关产品推荐

