如何交换包含文本对象的向量

时间:2016-04-06 06:24:49

标签: c++ visual-studio vector sfml

当我尝试交换两个向量时,其中一个向量包含文本对象而另一个为空,我收到此错误:

6363    error C2664: 'void std::vector<mainmenu,std::allocator<_Ty>>::swap(std::vector<_Ty,std::allocator<_Ty>> &)' : cannot convert argument 1 from 'std::vector<textDisplay,std::allocator<_Ty>>' to 'std::vector<mainmenu,std::allocator<_Ty>> &'    c:\sfml-2.3.2\sfml\main.cpp 254287

6463    IntelliSense: a reference of type "std::vector<textDisplay, std::allocator<textDisplay>> &" (not const-qualified) cannot be initialized with a value of type "std::vector<mainmenu, std::allocator<mainmenu>>"  c:\SFML-2.3.2\SFML\main.cpp 254287

这是其中一个向量包含的对象类型的示例。第二个向量为空:

                    textDisplayMainmenu1.text.setString("Broadsword");
                    textDisplayMainmenu1.text.setPosition(positionX, positionY1);
                    textDisplayMainmenuVector1.push_back(textDisplayMainmenu1);

当我尝试调用交换成员函数时,我得到了上述错误:

textDisplayVector2.swap(mainmenu1.textDisplayMainmenuVector1);

为什么这不起作用?我能做些什么才能让它发挥作用?

0 个答案:

没有答案