可能是一个初学者问题..但我不知道在这种情况下如何进行推回
我有一个结构圆
struct circle
{
std::string name;
int PosX;
int SpeedX;
int PosY;
int SpeedY;
int ColorR;
int ColorG;
int ColorB;
int Radius;
};
我有一个未知 nr 行的 stringstring 数组,其中包含 Circle cBlue 200 200 0.02 0.04 0 0 255 100 等对象 在具有指向圆向量的共享指针的函数中,我希望将此 cicle 推回到向量中
void FindCircles(std::shared_ptr<DynamicArray<std::string>> LocalStringArray, std::shared_ptr<std::vector<circle>> MyCircles)
{
//itterate to the array of strings
for (size_t i = 0; i < LocalStringArray->getSize() + 1; i++)
{
std::string ConfigElement = LocalStringArray->get(i);
//split the string into seperate substrings
std::vector<std::string> result = splitString(ConfigElement, ' ');
//when the line is a circle
if (result[0] == "Circle")
{
circle Circle1;
Circle1.name = result[1];
Circle1.PosX = std::stoi (result[2]);
Circle1.SpeedX = std::stof (result[4]);
Circle1.PosY = std::stoi (result[3]);
Circle1.SpeedY = std::stof (result[5]);
Circle1.ColorR = std::stoi (result[6]);
Circle1.ColorG = std::stoi (result[7]);
Circle1.ColorB = std::stoi (result[8]);
Circle1.Radius = std::stoi (result[9]);
//pushback into Mycircles
}
}
}
关于如何反击有什么建议吗?>
我尝试取消引用共享指针,但找不到有用的成员函数
在我的 stringarray 中有 3 个圆圈,推回确实将 3 个圆圈推回到 MyCircles 向量中,但在函数本身之外仍保持活动状态 有时一整晚的睡眠就能起到作用
//find circles and copy them in circle array
void FindCircles(std::shared_ptr<DynamicArray<std::string>> LocalStringArray, std::shared_ptr<std::vector<circle>> MyCircles)
{
for (size_t i = 0; i < LocalStringArray->getSize() + 1; i++)
{
std::string ConfigElement = LocalStringArray->get(i);
std::vector<std::string> result = splitString(ConfigElement, ' ');
if (result[0] == "Circle")
{
circle Circle1;
Circle1.name = result[1];
Circle1.PosX = std::stoi (result[2]);
Circle1.SpeedX = std::stof (result[4]);
Circle1.PosY = std::stoi (result[3]);
Circle1.SpeedY = std::stof (result[5]);
Circle1.ColorR = std::stoi (result[6]);
Circle1.ColorG = std::stoi (result[7]);
Circle1.ColorB = std::stoi (result[8]);
Circle1.Radius = std::stoi (result[9]);
MyCircles->push_back(Circle1);
}
}
}