struct vec_api {
template<typename _Vec, typename _Same>
void remover(_Vec& d, _Same obj) {
d.erase(std::remove(d.begin(), d.end(), obj), d.end());
}
};Удаление элемента в векторе
vec_api vapi;
std::vector<uint8_t> _codes = { 0x10,0xFF,0xA0 };
vapi.remover(_codes, 0x10);
Работа с векторами в PahomEngine Новый модуль vec
struct vec_api {
template<typename _Vec, typename _Same>
void remover(_Vec& d, _Same obj) {
d.erase(std::remove(d.begin(), d.end(), obj), d.end());
}
template<typename _Vec>
void resize(_Vec& d, uint64_t size) {
d.resize(size);
}
template<typename _Vec>
void reserve(_Vec& d, uint64_t size) {
d.reserve(size);
}
template<typename _Vec, typename _Same>
void addpb(_Vec& d,_Same obj) {
d.push_back(obj);
}
template<typename _Vec, typename _Same>
void addeb(_Vec& d, _Same obj) {
d.emplace_back(obj);
}
template<typename _Vec, typename... _Args>
void addeb(_Vec& d, _Args&&... args) {
d.emplace_back(std::forward<_Args>(args)...);
}
template<typename _Vec, typename... _Args>
void addpb(_Vec& d, _Args&&... args) {
d.emplace_back(std::forward<_Args>(args)...);
}
template<typename _Vec>
bool isEmpty(_Vec& d) {
return d.empty() ? true : false;
}
};struct threads {
std::vector <std::jthread> _threads;
vec_api vec;
template<typename..._Args>
void loadToJThread(int32_t threads_count,_Args&&...args) {
vec.reserve(_threads, threads_count);
for (int n = 0; n < threads_count; n++) {
vec.addeb(_threads, std::forward<_Args>(args)...);
}
}
};модуль threads в PahomEngine
This media is not supported in your browser
VIEW IN TELEGRAM
IMG_1069.MOV
467.9 MB
тест апскейлера
ориг 720р30
улучшило до 4к60
ориг 720р30
улучшило до 4к60
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Помоги собрать на телефон CMF by Nothing Phone 2 Pro
сбер
2202205023810762
25~к руб
https://donationalerts.com/r/hcpp
хотеть
сбер
2202205023810762
25~к руб
https://donationalerts.com/r/hcpp
хотеть
50👍1
Главная ошибка новичков при работе с массивами это выход за границу массива так как используют std::size();
const int int_array [] = {0,1,2,3,4,5,6,7,8,9};
и обычно пишут
size_t int_array_size = std::size(int_array);
но std::size вернет 10 и если захочешь использовать в логике например
for(int a = 0 ; a < array_size;a++){
std::print("i: {}\n",int_array[a]);
}
то ты выйдешь за границы массива потому то массив начинается от 0
а нужно просто добавить
const int int_array [] = {0,1,2,3,4,5,6,7,8,9};
и обычно пишут
size_t int_array_size = std::size(int_array) - 1;
for(int a = 0 ; a < array_size;a++){
std::print("i: {}\n",int_array[a]);
}
и тогда все сработает правильно
пример
#include <print>
#include <stdint.h>
const int arr[10] = {0,1,2,3,4,5,6,7,8,9};
void bad(){
for(int a = 0; a < std::size(arr);a++){
std::print("i: {}\n",arr[a]);
}
void good(){
for(int a = 0; a < std::size(arr) - 1;a++){
std::print("i: {}\n",arr[a]);
}
int main(){
good(); // выведет от 0 до 9
bad() выведет от 0 до 9 и упадет приложение
}
🔥1
This media is not supported in the widget
VIEW IN TELEGRAM
🤯1
как предпочитаете выполнять команды от рут в линукс?
sudo su чтобы сессию рут в консоли сделать
или для каждой команды отдельно прописывать sudo?
sudo su чтобы сессию рут в консоли сделать
или для каждой команды отдельно прописывать sudo?
vless://4a6bfa9f-3f1e-1f40-8117-0da4c8f1ae89@new.ilovemax.ru:443?flow=xtls-rprx-vision&type=tcp&headerType=none&security=reality&fp=qq&sni=max.ru&pbk=4CH3o5zOMcFNMbnwXnkAg0FFepmsc0QzhahXkUzb1ik&sid=d8c6b58bcbb0c323#%F0%9F%87%B3%F0%9F%87%B1%F0%9F%9F%A1%20%D0%9E%D0%B1%D1%85%D0%BE%D0%B4%20%5B%D0%92%D1%81%D0%B5%20%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B%5D%20%234
❤1