将2D矢量从3D矢量中取出并替换为其他2D矢量

时间:2016-08-31 15:47:32

标签: c++

我想在3D-Vector std::vector<std::vector<std::string>> _map中为我的2D-Vector std::vector<std::vector<std::vector<std::string>>> _save保存游戏:

_save.push_back(_map);

后来我想(如果条件)用3D-Vector中最后保存的2D-Vector替换我的2D-Vector,然后删除最后保存的2D-Vector。我的代码是:

std::vector<std::vector<std::string>> map2;
int var = _save.size() -1; // tried with _save.back() too
map2.push_back(_save[var]);
_save.pop_back();
_map.swap(map2);

我做错了什么?它应该是什么样的?谢谢你的帮助。

以下错误:

Structure.cpp: In member function ‘void Structure::undo(bool)’:
Structure.cpp:69:30: error: no matching function for call to ‘std::vector<std::vector<std::basic_string<char> > >::push_back(__gnu_cxx::__alloc_traits<std::allocator<std::vector<std::vector<std::basic_string<char> > > > >::value_type&)’
     map2.push_back(_save[var]);
                              ^
Structure.cpp:69:30: note: candidates are:
In file included from /usr/include/c++/4.9/vector:64:0,
                 from Structure.cpp:6:
/usr/include/c++/4.9/bits/stl_vector.h:913:7: note: void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::vector<std::basic_string<char> >; _Alloc = std::allocator<std::vector<std::basic_string<char> > >; std::vector<_Tp, _Alloc>::value_type = std::vector<std::basic_string<char> >]
       push_back(const value_type& __x)
       ^
/usr/include/c++/4.9/bits/stl_vector.h:913:7: note:   no known conversion for argument 1 from ‘__gnu_cxx::__alloc_traits<std::allocator<std::vector<std::vector<std::basic_string<char> > > > >::value_type {aka std::vector<std::vector<std::basic_string<char> > >}’ to ‘const value_type& {aka const std::vector<std::basic_string<char> >&}’
/usr/include/c++/4.9/bits/stl_vector.h:931:7: note: void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp, _Alloc>::value_type&&) [with _Tp = std::vector<std::basic_string<char> >; _Alloc = std::allocator<std::vector<std::basic_string<char> > >; std::vector<_Tp, _Alloc>::value_type = std::vector<std::basic_string<char> >]
       push_back(value_type&& __x)
       ^
/usr/include/c++/4.9/bits/stl_vector.h:931:7: note:   no known conversion for argument 1 from ‘__gnu_cxx::__alloc_traits<std::allocator<std::vector<std::vector<std::basic_string<char> > > > >::value_type {aka std::vector<std::vector<std::basic_string<char> > >}’ to ‘std::vector<std::vector<std::basic_string<char> > >::value_type&& {aka    std::vector<std::basic_string<char> >&&}’
Makefile:28: recipe for target 'Structure.o' failed
make: *** [Structure.o] Error 1

0 个答案:

没有答案