C++ Вопрос Использование STL в программе без CRT

Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,001
Реакции[?]
86
Поинты[?]
23K
Добрый вечер! Можно ли как то использовать STL библиотеку в программе без CRT? Насколько я знаю, это невозможно. Может я ошибаюсь.
 
ппоршень
Пользователь
Статус
Оффлайн
Регистрация
15 Фев 2020
Сообщения
294
Реакции[?]
46
Поинты[?]
32K
Добрый вечер! Можно ли как то использовать STL библиотеку в программе без CRT? Насколько я знаю, это невозможно. Может я ошибаюсь.
я же надеюсь ты попробовал его использовать прежде чем писать на форум? если да, то какие ошибки возникают
 
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,001
Реакции[?]
86
Поинты[?]
23K
Начинающий
Статус
Оффлайн
Регистрация
2 Фев 2022
Сообщения
69
Реакции[?]
14
Поинты[?]
19K
Вставляешь и спокойно юзаешь, ну либо ищи кастомный std::vector на гитхабе.

C++:
extern "C"
{
#pragma function(memmove)
    void* __cdecl memmove(void* dest, const void* src, size_t num)
    {
        __movsb(static_cast<unsigned char*>(dest),
            static_cast<const unsigned char*>(src), num);
        return dest;
    }
}

void __cdecl __std_exception_copy(
    _In_  __std_exception_data const* _From,
    _Out_ __std_exception_data* _To
)
{
    return;
}

void __cdecl __std_exception_destroy(
    _Inout_ __std_exception_data* _Data
)
{
    return;
}

__declspec(noreturn) inline void _Xlen_string()
{
    return;
}

__declspec(noreturn) inline void _Throw_bad_array_new_length() {
    return;
}

#include <vector>

// usage
 
Начинающий
Статус
Онлайн
Регистрация
13 Май 2023
Сообщения
166
Реакции[?]
26
Поинты[?]
26K
А ты пробовал обратится к GPT?
C++:
#include <iostream>
#include <stdexcept>

template<typename T>
class CustomVector {
private:
    T* array;
    size_t capacity;
    size_t size;

public:
    CustomVector() : array(nullptr), capacity(0), size(0) {}

    CustomVector(size_t initialCapacity) : array(new T[initialCapacity]), capacity(initialCapacity), size(0) {}

    ~CustomVector() {
        delete[] array;
    }

    void push_back(const T& value) {
        if (size >= capacity) {
            resize(capacity == 0 ? 1 : capacity * 2);
        }
        array[size++] = value;
    }

    void resize(size_t newCapacity) {
        T* newArray = new T[newCapacity];
        for (size_t i = 0; i < size; ++i) {
            newArray[i] = std::move(array[i]);
        }
        delete[] array;
        array = newArray;
        capacity = newCapacity;
    }

    size_t getSize() const {
        return size;
    }

    size_t getCapacity() const {
        return capacity;
    }

    T& operator[](size_t index) {
        if (index >= size) {
            throw std::out_of_range("Index out of range");
        }
        return array[index];
    }

    const T& operator[](size_t index) const {
        if (index >= size) {
            throw std::out_of_range("Index out of range");
        }
        return array[index];
    }
};

int main() {
    CustomVector<int> vec;
    vec.push_back(1);
    vec.push_back(2);
    vec.push_back(3);

    for (size_t i = 0; i < vec.getSize(); ++i) {
        std::cout << vec[i] << " ";
    }
    std::cout << std::endl;

    return 0;
}
 
че
Пользователь
Статус
Оффлайн
Регистрация
27 Фев 2021
Сообщения
477
Реакции[?]
64
Поинты[?]
16K
А ты пробовал обратится к GPT?
Кому кроме тебя не похуй на твой гпт? А если у меня кастом импорты или подобие? Твой гпт нахуй не всрался в тяжелых проектах, его максимум в помощи это начиная от cout заканчивая asm
 
Начинающий
Статус
Онлайн
Регистрация
13 Май 2023
Сообщения
166
Реакции[?]
26
Поинты[?]
26K
Кому кроме тебя не похуй на твой гпт? А если у меня кастом импорты или подобие? Твой гпт нахуй не всрался в тяжелых проектах, его максимум в помощи это начиная от cout заканчивая asm
Твое мнение тут не кому на важное.
Умей задавать правильно вопросы.
 
че
Пользователь
Статус
Оффлайн
Регистрация
27 Фев 2021
Сообщения
477
Реакции[?]
64
Поинты[?]
16K
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,001
Реакции[?]
86
Поинты[?]
23K
А ты пробовал обратится к GPT?
C++:
#include <iostream>
#include <stdexcept>

template<typename T>
class CustomVector {
private:
    T* array;
    size_t capacity;
    size_t size;

public:
    CustomVector() : array(nullptr), capacity(0), size(0) {}

    CustomVector(size_t initialCapacity) : array(new T[initialCapacity]), capacity(initialCapacity), size(0) {}

    ~CustomVector() {
        delete[] array;
    }

    void push_back(const T& value) {
        if (size >= capacity) {
            resize(capacity == 0 ? 1 : capacity * 2);
        }
        array[size++] = value;
    }

    void resize(size_t newCapacity) {
        T* newArray = new T[newCapacity];
        for (size_t i = 0; i < size; ++i) {
            newArray[i] = std::move(array[i]);
        }
        delete[] array;
        array = newArray;
        capacity = newCapacity;
    }

    size_t getSize() const {
        return size;
    }

    size_t getCapacity() const {
        return capacity;
    }

    T& operator[](size_t index) {
        if (index >= size) {
            throw std::out_of_range("Index out of range");
        }
        return array[index];
    }

    const T& operator[](size_t index) const {
        if (index >= size) {
            throw std::out_of_range("Index out of range");
        }
        return array[index];
    }
};

int main() {
    CustomVector<int> vec;
    vec.push_back(1);
    vec.push_back(2);
    vec.push_back(3);

    for (size_t i = 0; i < vec.getSize(); ++i) {
        std::cout << vec[i] << " ";
    }
    std::cout << std::endl;

    return 0;
}
обращался я к нему
 
Олдфаг
Статус
Оффлайн
Регистрация
4 Янв 2020
Сообщения
2,996
Реакции[?]
1,275
Поинты[?]
5K
Кому кроме тебя не похуй на твой гпт? А если у меня кастом импорты или подобие? Твой гпт нахуй не всрался в тяжелых проектах, его максимум в помощи это начиная от cout заканчивая asm
Чатгпт мне столько полезной хуйни написал, но видимо он бустит только тех кто умеет им пользоваться.
 
Сверху Снизу