C++将字符串数组[]复制到vector <string>

Gri*_*fin 5 c++ arrays string vector

所以我使用成员函数"insert"创建这个类,从字符串数组复制到类内容,这是一个矢量数组.

这个中止错误不断弹出说我要经过Vector结束,但我不明白为什么......

这是代码:

/////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////      Map class   /////////////////////
class Map
{
private:
///////////////////////////////////////////     Map Variables ///////////////
    string _name;
    vector <string> _contents;

public:
    Map(string name){_name = name;
                     _contents.reserve(56);};
    ~Map(){};
    string getName()
    {
    return _name;
    };

    vector <string> getContents()
    {
        return _contents;
    };

///////////////////////////////////////////     Insert  ////////////////////////
            //  string* to an array of 56 strings;
    bool Insert(string* _lines_)
    {

    for (int I = 0; I < 3; I++)
    {
        _contents[I] = _lines_[I];
    }
        return true;
    };


};
Run Code Online (Sandbox Code Playgroud)

如果您需要更多信息,请询问!谢谢!

Eri*_*c Z 8

实际上,您不需要自己复制它们.您可以使用std::vector::assign将a转换c-style arraystd::vector.

矢量::分配

将新内容分配给矢量对象,在调用之前删除矢量中包含的所有元素,并将其替换为参数指定的元素.

string sArray[3] = {"aaa", "bbb", "ccc"};
vector<string> sVector;
sVector.assign(sArray, sArray+3);
        ^ ok, now sVector contains three elements, "aaa", "bbb", "ccc"
Run Code Online (Sandbox Code Playgroud)

更多细节

http://www.cplusplus.com/reference/stl/vector/assign/