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)
如果您需要更多信息,请询问!谢谢!
实际上,您不需要自己复制它们.您可以使用std::vector::assign将a转换c-style array为std::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/