Я пытаюсь ниже python код в C ++. Так что я могу создать оболочку для этого python кода, чтобы ускорить выполнение кода (оригинальный код другой. Сейчас я пытаюсь использовать небольшой фрагмент кода, который включает deque и словарь).
Python:
from collections import deque
d=deque()
d.append({'a':1,'b':2})
d.append({'c':3,'d':4})
print(d)
вывод: deque ([{'a': 1, 'b': 2}, {'c ': 3,' d ': 4}])
C ++ 14:
#include <deque>
#include <iostream>
using namespace std;
#include <map>
std::map<char, int> my_map = {
{ 'a', 1 },
{ 'b', 2 }
};
int main()
{
deque<int> mydeque;
mydeque.push_back(my_map);
return 0;
}
Это дает мне ошибку, которая очевидна. Я не знаю, как поместить в словарь элемент словаря?
prog. cpp: В функции 'int main ()': prog. cpp: 16: 29: error : нет соответствующей функции для вызова 'std :: deque :: push_back (std :: map &)' mydeque.push_back (my_map); ^ В файле, включенном в / usr / include / c ++ / 5 / deque: 64: 0, из программы. cpp: 1: /usr/include/c++/5/bits/stl_deque.h:1516:7: note: кандидат: void std :: deque <_Tp, _Allo c> :: push_back (const value_type &) [with _Tp = int; _Allo c = std :: allocator; std :: deque <_Tp, _Allo c> :: value_type = int] push_back (const value_type & __x) ^ /usr/include/c++/5/bits/stl_deque.h:1516:7: примечание: нет известных преобразований для аргумент 1 из 'std :: map' в 'const value_type & {aka const int &}' /usr/include/c++/5/bits/stl_deque.h:1531:7: примечание: кандидат: void std :: deque <_Tp, _Allo c> :: push_back (std :: deque <_Tp, _Allo c> :: value_type &&) [with _Tp = int; _Allo c = std :: allocator; std :: deque <_Tp, _Allo c> :: value_type = int] push_back (value_type && __x) ^ /usr/include/c++/5/bits/stl_deque.h:1531:7: примечание: нет известных преобразований для аргумента 1 из 'std :: map' в 'std :: deque :: value_type && {aka int &&}'