如何在c++中使用指针赋值字符串向量的向量

How do I assign vector of vectors of strings using pointers to multiple vectors in C++?

本文关键字:向量 指针 赋值 字符串 c++      更新时间:2023-10-16

我需要帮助来弄清楚代码位。我不确定如何填充向量>使用指针到字符串的多个向量。

请只在包含//HELP NEEDED HERE的行中提出建议

#include <iostream>
#include <string>
#include <vector>
using namespace std;
vector<string>* pointerReturner (string str1, string str2, string str3)
{
    vector<string> *vList = new vector<string>();
    vList->push_back(str1); 
    vList->push_back(str2);
        vList->push_back(str3); 
    return vList;
}
int main(int argc, char* argv[]) {
    vector<string> *vMakeList1;
        vMakeList1 = pointerReturner ("1","8-20-2011","Ford");
        vector<string> *vMakeList2;
    vMakeList2 = pointerReturner ("2","8-20-2011","Honda");
        vector<string> *vMakeList3;
        vMakeList3 = pointerReturner ("3","8-20-2011","Toyota");
        vector<vector<string>> *MakeList;
        //HELP NEEDED HERE
delete vMakeList1, vMakeList2, vMakeList3;

    vector<vector<string> >::iterator i = MakeList->begin();
    for( ; i != MakeList->end(); ++i)
    {
        vector<string>::iterator pos = (*i).begin();
        for ( ; pos!=(*i).end(); ++pos)
            cout << *pos << endl;
    }
    cin.get();
    return 0;
}

结果是填充了相关数据的vector<vector<string>>

MakeList = new vector<vector<string> > ();
MakeList->push_back(*vMakeList1);
MakeList->push_back(*vMakeList2);
MakeList->push_back(*vMakeList3);

不能。你需要一个vector<vector<string>*>* MakeList。还有,太多的指针和new蝙蝠侠

vector<vector<string>> *MakeList = new vector<vector<string>>();
MakeList->push_back(*vMakeList1);
MakeList->push_back(*vMakeList2);
MakeList->push_back(*vMakeList3);

似乎可以完成这项工作。

这不是做事的方式,但你似乎已经意识到这一点。