Перенести код С++ с std::map на СИ

192
16 апреля 2017, 02:20

Есть код на С++ в нём используются std::vector и std::map.
Мне нужно перенести код на язык СИ где нет STL, делать реализацию методов из STL vector и map для массива в языке СИ не требуется. Нужно лишь перенести данную конструкцию на средства языка СИ. Как это записано в С++
Пример: std::vector <тип> myVector;
Как я это записал c использованием языка СИ:

<тип> * myVector;  
int sizeMyVector; 

Как мне правильно перенести конструкцию из языка С++ с использованием map на язык Си с использованием простых массивов? Конструкции такие:
1) map <int , double> myFirstMap;
2) map<int, map<int, double> >;

Answer 1

Вообще-то это комментарий, но там не поместится...

Ну вот объявите вы, например, так:

typedef struct pair_
{
    int a;
    double b;
} pair;
typedef struct map_
{
    int x;
    pair * p;
} map;
pair* myFirstMap;
map*  mySecondMap;

Но что толку без реализации? Ведь нужно обеспечить отсортированность, единственность, время доступа... Т.е. по сути реализовать сбалансированное бинарное дерево. И опять же - нужны именно функции для работы с ним, потому что иначе - это просто какой-то сюр...

READ ALSO
Ассемблер/C++ как вызвать функцию пользовательского класса класса?

Ассемблер/C++ как вызвать функцию пользовательского класса класса?

Допустим у меня есть модуль/класс: TGAImage, а внутри него функция:

200
как будет выглядеть в СИ?

как будет выглядеть в СИ?

это в файле maincpp Кусок метода который нужно сделать в си коде

184
Бинарный поиск для строк

Бинарный поиск для строк

Не может найти нужный элемент в отсортированном массиве

242
Программа падает еще не запустившись

Программа падает еще не запустившись

Clion 20171 Пытаюсь запустить Hello world

201