You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中向std::string类型std::vector添加int值的编译报错解决

问题核心原因

  • 你的猜测是正确的,之前代码里push_back("i")的问题就出在i两侧的双引号:带双引号的内容是字符串字面量,会被识别为内容为字母"i"的固定文本,和循环里定义的int型变量i没有任何关联。
  • 移除双引号直接写push_back(i)触发编译报错,根本原因是possible_numbers被定义为存储std::string元素的vector,C++不会对int和std::string做隐式类型转换,因此push_back没有能接收int入参的重载版本,直接抛出类型不匹配的错误。

修正方案

根据你实际的存储需求选择对应改法:

  • 如果你只是想存储整数数值,不需要字符串形式的数字
    直接把vector的元素类型从std::string改为int,不需要额外类型转换:
#include <iostream>
#include <vector>

int main() {
    std::vector<int> possible_numbers;
    for(int i = 1; i < 101; i++) {
        possible_numbers.push_back(i);
    }
}
  • 如果你确实需要把数字转成对应文本存入string类型的vector
    使用C++标准库提供的std::to_string()方法,将int值显式转换为对应的字符串后再传入push_back,记得引入<string>头文件:
#include <iostream>
#include <vector>
#include <string>

int main() {
    std::vector<std::string> possible_numbers;
    for(int i = 1; i < 101; i++) {
        possible_numbers.push_back(std::to_string(i));
    }
}

内容的提问来源于stack exchange,提问作者Dragon_31

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.27 00:24:03