c++向量push_back需要帮助

c++ vector push_back need assistance

本文关键字:帮助 back 向量 push c++      更新时间:2023-10-16

这个问题很简单,但我忘了使用c++,不知道还能问哪里。

关于c++中的向量,我有一个问题:当我用对象创建向量时,当我试图在向量上推送新对象时,我会得到一些wierd错误。你能帮我说我应该如何使用push_back(在对象上?(这样它就可以工作了。谢谢

我有.h级:

class x{
    public:
        x();
        double cpuGHz;
        int hddGB;
        char brand[25];
};
and have main class:
#include "Racunalo.h"
#include <iostream>
#include <cstdlib>
#include <string.h>
#include <vector>
using namespace std;
int main()
{
    int n,i;
    double cpu;
    int hdd;
    char bra[25];
    vector<Racunalo> vec;
    Racunalo rac;
    cin >> n;
    for (i=0; i<n; i++)
        {
            cin >> bra;
            cin >> hdd;
            cin >> cpu;
            strcpy(rac.brand, bra);
            rac.hddGB = hdd;
            rac.cpuGHz = cpu;
            vec[i].push_back(rac); // this line is "rotten"
        }

更换

vec[i].push_back(rac);

带有

vec.push_back(rac);

祝好运

vec[i].push_back(rac);
^^^^^^^
a reference to Recunalo object

vec[i]为您提供了vector的一个元素(对元素的引用(,因此您不能对其push_back(除非它是具有push_back函数的类的对象(。这里vec[i]是指Racunalo对象。std::vector::push_backvector的成员函数,所以我们在对象上这样调用它:

vec.push_back( rac);
^^^^
std::vector<Recunalo>

std::vector::push_back

Vector就像一个数组,只是它可以动态增长。

pushback是一个添加在容器末尾的方法。如果你创建了一个类似向量a(10(的向量,然后在第11位进行push_back插入,因为前10位都是用0初始化的。因此,为了提供帮助,最好创建一个类似向量a的向量,不带任何大小,然后使用push_back在末尾插入。

矢量a
a.push_back(5(;