c++ - 从 cin 推回成对的 vector 给出错误的结果

标签 c++ string push-back

<分区>

所以我正在尝试构建一个 vector ,然后将成对项推回其中。代码是这样的:

int main() 
{
    int n;
    cin >> n;
    vector<pair<int,string>> o(n,make_pair(0," "));

    for(int a0 = 0; a0 < n; a0++)
    {
        int x;
        string s;
        cin>>x>>s;
        o.push_back(make_pair(x,s));
    }
    for(int i=0;i<n;++i)
        cout<<o[i].first;

    return 0;
}

但是生成的 vector 显示错误的结果。那么这里有什么问题呢?有人可以帮帮我吗?

最佳答案

仅使用此 vector<pair<int, string>> o;你的最终将在 vector 中有 2n 个元素,或者你可以

int n;
cin >> n;
vector<pair<int, string>> o (n, make_pair(0, " "));

for (int a0 = 0; a0 < n; a0++)
{
    int x;
    string s;
    cin >> x >> s;

    auto& it = o.at(a0);
    (it.first) = x;
    it.second = s;
    //o.push_back(make_pair(x, s));
}

关于c++ - 从 cin 推回成对的 vector 给出错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49281726/

相关文章:

c++ - 在两个函数 C++ 之间发送一个数组

c++ - QT C++ 删除带 * 的文件(名称包含)

c++ - 链表的 Push_front 和 push_back 方法似乎删除了一个节点

c++ - 用unique_pointers填充 vector

c++ - &i 和 p 都指向同一个变量但显示不同的结果?

c++ - 在 C/C++ 中创建新的证书存储

c - 如何将 sprintf/snprintf 与双指针 char 数组一起使用

ios - swift 中 GTMNSString+HTML 的等价物?

Javascript 搜索字符串并返回匹配数

c++ - 在 Vector<RECT> 数组中显示值