当我<int>推送包含整数的字符串时,如何修复被推回向量的垃圾值

How to fix garbage values that are being pushed back into a vector<int>, when I push a string containing integers

本文关键字:何修复 向量 gt int 包含 整数 字符串 当我 lt      更新时间:2023-10-16

编辑: - 他的问题与从字符串中获取字符有何不同?

  1. 指定的技术是C#,而不是C 。
  2. Question Associates列表框,当我的列表与矢量关联时。

我正在尝试在我的C 整数矢量(向量(中的字符串迭代器的帮助下推动整数的字符串,但是不幸的是,当我按下删除参考的字符串时,我得到的只是将一些垃圾值推入我的向量。

我尝试搜索Google几天。除此之外,我尝试了查看文档,并且我也尝试使用(int(强制使用DE引用的字符串迭代器。

#include <iostream>
#include <vector>
#include <string>
using namespace std;


int main() {
    string str = "1234";
    vector<int> vec;
    for (string::iterator itr = str.begin(); itr != str.end(); ++itr){         
        vec.push_back(*itr);
    }
    for (vector<int>::iterator itr = vec.begin(); itr != vec.end();      
    ++itr) {
         cout << *itr;
    }
    return 0;
}

预期输出:1234


实际输出:49505152

您没有看到"垃圾值",而是字符串中字符的数值。也就是说,因为您使用的是像绝大多数人一样的ASCII系统,因此角色'1'的价值为49,依此类推。如果要将数字字符(例如'1'(转换为 Integer ,例如1,则需要减去'0'(系统上的48(。