V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  terryching  ›  全部回复第 1 页 / 共 4 页
回复总数  62
1  2  3  4  
49 天前
回复了 wisefree 创建的主题 C++ C++ 如果通过解析字符串定义一个结构体
看看 GPT4 给出的答案:
运行时解析:使用已有的数据结构,如 std::map 或自定义的数据结构,来在运行时模拟结构体。基于解析得到的信息(字段名、类型、数组大小等),你可以动态地存储和访问数据。这种方法牺牲了类型安全和编译时优化,但提供了灵活性。
```c++
#include <iostream>
#include <map>
#include <vector>
#include <string>
#include <typeinfo>
#include <cstdint>

class DynamicStruct {
public:
std::map<std::string, std::vector<uint8_t>> fields;

void addInt(const std::string& name, int value) {
auto data = reinterpret_cast<uint8_t*>(&value);
fields[name] = std::vector<uint8_t>(data, data + sizeof(value));
}

void addDouble(const std::string& name, double value) {
auto data = reinterpret_cast<uint8_t*>(&value);
fields[name] = std::vector<uint8_t>(data, data + sizeof(value));
}

int getInt(const std::string& name) {
if(fields.find(name) != fields.end()) {
auto& data = fields[name];
return *reinterpret_cast<const int*>(data.data());
}
return 0; // Or throw an exception
}

double getDouble(const std::string& name) {
if(fields.find(name) != fields.end()) {
auto& data = fields[name];
return *reinterpret_cast<const double*>(data.data());
}
return 0.0; // Or throw an exception
}

// Similar methods can be added for other types and arrays
};

int main() {
DynamicStruct myStruct;
myStruct.addInt("x", 123);
myStruct.addDouble("y", 456.789);
// For arrays, you might add them element by element or as a block if you know the size

std::cout << "x = " << myStruct.getInt("x") << std::endl;
std::cout << "y = " << myStruct.getDouble("y") << std::endl;

// Accessing array elements would require additional methods

return 0;
}
```
251 天前
回复了 undertow 创建的主题 程序员 工作一天一般写多少行代码
如果有工作需要一天大部分时间敲代码,有两种可能:1. 复杂度低的重复性代码; 2. 任务分配太多导致工作量大。无论哪种,都可以考虑跑路了
2021-08-20 10:34:27 +08:00
回复了 TOUJOURSER 创建的主题 职场话题 坐在我旁边的同事一直抖腿
直接说就行了,不要想太多
2021-01-22 07:57:19 +08:00
回复了 wohenfuyou 创建的主题 C++ 关于 protobuf proto 类型映射到 c++类型
string *是内部使用的,你用接口获取和设置都是 string
2021-01-11 07:54:22 +08:00
回复了 Brentwans 创建的主题 问与答 程序员专职投资可行性
你自己都说了是万万没想到了,说明投资收益和理财能力无关。我觉得可以给自己定几个目标,看看是不是都能达到,大概可以检验一下自己吧。
休息一段时间可以,没必要专职搞吧。
2020-05-09 12:27:19 +08:00
回复了 deepmindlab 创建的主题 互联网 快看,百度首页的 ui 升级了
现在默认用 bing,辅助 Google,百度真的用不上了
@iamvx 被分享的设备设置开启分享的手机作为代理
2020-04-26 07:24:54 +08:00
回复了 ybw 创建的主题 程序员 有没有类似"给 C++程序员的 Python 教程"的东西
有编程基础的随便看看就会了,基础语法内容不多
目测并不是要找“架构师”,而是做过相关项目的有实际经验的全栈工程师,估计已有的都是应届生或者经验不足的,坑太深。
2020-04-11 07:38:28 +08:00
回复了 EricTsui1024 创建的主题 程序员 疫情期间,关于跳槽的一些思考,望大佬指指路!
我们公司的测试组 leader 已经往商务上转,可能也和团队规模比较小有关,题主可以考虑一下
2020-03-30 08:22:56 +08:00
回复了 JJstyle 创建的主题 程序员 第一次画流程图,太难了,请多指教!
感觉文字还要精炼一下
2020-03-25 12:41:21 +08:00
回复了 chizuo 创建的主题 程序员 有没有方便的 GUI 远程 Linux 文件夹管理器啊?
samba 没人说么
2020-03-23 18:02:26 +08:00
回复了 MekoPan 创建的主题 程序员 疲劳驾驶是怎么判断的啊
《道路交通安全法实施条例》第六十二条 驾驶机动车不得有下列行为:
(七)连续驾驶机动车超过 4 小时未停车休息或者停车休息时间少于 20 分钟。
2020-03-10 12:36:25 +08:00
回复了 auto8888 创建的主题 C++ 关于 boost、Qt 和跨平台
可以考虑下 POCO,容易理解一点,当然坑也不少
2020-03-08 08:07:02 +08:00
回复了 amiwrong123 创建的主题 程序员 protobuf 的 repeated 字段在遇到 0 的时候,就很奇怪啊
你们跨平台传都不序列化的吗
2020-02-29 18:24:01 +08:00
回复了 bin456789 创建的主题 问与答 选择 64 位或 32 位版本的 Office?感觉我的英语白学了
说反了吧
2020-02-22 16:24:12 +08:00
回复了 Austin2035 创建的主题 问与答 大佬给点意见,推荐一下语言吧!
建议楼主先确定一下以后想从业的方向,再看一下这个方向的主流技术栈,根据这个查漏补缺。
2020-02-22 16:17:39 +08:00
回复了 kookoo900 创建的主题 问与答 你们是如何防止个人隐私泄露?
G 家是出了名的隐私泄露户
2020-02-15 00:34:58 +08:00
回复了 ludan7h 创建的主题 问与答 如何整理电子书单?
把 excel 文件放在坚果云上,完美解决
1  2  3  4  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1385 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 23:43 · PVG 07:43 · LAX 16:43 · JFK 19:43
Developed with CodeLauncher
♥ Do have faith in what you're doing.