当前位置: 首页 > news >正文

网站是哪家公司做的如何用html制作网页

网站是哪家公司做的,如何用html制作网页,招聘网站做销售,合肥企业网站排名优化前言 序列化(Serialization) 是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。 使用 序列化 std::array&…

前言

序列化(Serialization)
是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。

使用

序列化

		std::array<int, 1> arr = {147};std::initializer_list<int> lst = {951, 623};std::vector<int> vec = {123, 456, 789};ntl::Serialization ser2 = ntl::Serializer::serialize(arr);ntl::Serialization ser3 = ntl::Serializer::serialize(lst);ntl::Serialization ser4 = ntl::Serializer::serialize(vec);

反序列化

		std::vector<int> vec2;std::vector<int> vec3;std::vector<int> vec4;ntl::Deserializer::deserialize(ser2, vec2);ntl::Deserializer::deserialize(ser3, vec3);ntl::Deserializer::deserialize(ser4, vec4);

代码

序列化的代码算不上多,但也不少,可以在github上找到完整版

Serializable

Serializable就是能被序列化的对象,有三个接口:

virtual Serialization serialize() = 0;
virtual Serialization serialize() const = 0;
virtual SelfType &deserialize(const Serialization &serialization) = 0;

用于序列化与反序列化

	/// @brief 可序列化的对象class NTL_ALIGN Serializable : public Object{public:using SelfType = Serializable;using ParentType = Object;public:constexpr Serializable() noexcept = default;constexpr explicit Serializable(const SelfType &from) noexcept = default;~Serializable() override = default;public:constexpr SelfType &operator=(const SelfType &from) noexcept = default;public:/// @brief 序列化本对象/// @return 序列virtual Serialization serialize() = 0;/// @brief 序列化本对象/// @return 序列virtual Serialization serialize() const = 0;/// @brief 反序列化至本对象/// @param serialization 序列/// @return 本对象virtual SelfType &deserialize(const Serialization &serialization) = 0;};

Serialization

Serialization就更简单的,就是一封装了的字符串

	/// @brief 序列class NTL_ALIGN Serialization : public Object{public:using SelfType = Serialization;using ParentType = Object;protected:/// @brief 序列String m_serialization;public:Serialization() = default;explicit Serialization(const String &serialization);explicit Serialization(const SelfType &from) = default;~Serialization() override = default;public:SelfType &operator=(const SelfType &from) = default;operator String();operator String() const;public:/// @brief 获取序列/// @return 序列const ntl::String &get_serialization() const;/// @brief 设置序列/// @param serialization 序列/// @return 本对象SelfType &set_serialization(const ntl::String &serialization);};

Serializer

Serializer主要负责序列化基础类型

	/// @brief 序列化器class NTL_ALIGN Serializer : public Object{public:using SelfType = Serializer;using ParentType = Object;public:Serializer() = default;explicit Serializer(const SelfType &from) = default;~Serializer() override = default;public:SelfType &operator=(const SelfType &from) = default;public:static Serialization serialize(const Serializable &object);static Serialization serialize(char value);template <typename ValueType>static Serialization serialize(const ValueType &value);template <typename CharTraitsType, typename AllocatorType>static Serialization serialize(const std::basic_string<Char, CharTraitsType, AllocatorType> &str);template <typename ElementType, std::size_t size>static Serialization serialize(const std::array<ElementType, size> &container);template <typename ElementType, typename AllocatorType>static Serialization serialize(const std::vector<ElementType, AllocatorType> &container);template <typename ElementType>static Serialization serialize(const std::initializer_list<ElementType> &container);template <typename IteratorType>static Serialization serialize_container(const IteratorType &begin, const IteratorType &end);template <typename ElementType>static Serialization serialize_container(const ElementType *begin, SizeT size);};

Deserializer

Deserializer也是一样的,但是多了对序列的检查
其中用于检测的正则表达式长这样:

String Deserializer::regex_is_integer = NTL_STRING("[0-9]+");
String Deserializer::regex_is_float0 = NTL_STRING("[0-9]+[fd]?");
String Deserializer::regex_is_float1 = NTL_STRING("[0-9]+.[fd]?");
String Deserializer::regex_is_float2 = NTL_STRING(".[0-9]+[fd]?");
String Deserializer::regex_is_float3 = NTL_STRING("[0-9]+.[0-9]+[fd]?");
String Deserializer::regex_is_string = NTL_STRING("\"(.*)\"");
	/// @brief 反序列化器class NTL_ALIGN Deserializer : public Object{public:using SelfType = Deserializer;using ParentType = Object;/// @brief 整数static String regex_is_integer;/// @brief 浮点数,形如123static String regex_is_float0;/// @brief 浮点数,形如123.static String regex_is_float1;/// @brief 浮点数,形如.123static String regex_is_float2;/// @brief 浮点数,形如123.123static String regex_is_float3;/// @brief 是否为字符串,形如"abc"static String regex_is_string;public:Deserializer() = default;explicit Deserializer(const SelfType &from) = default;~Deserializer() override = default;public:SelfType &operator=(const SelfType &from) = default;public:template <typename ResultType>static ResultType deserialize(const Serialization &serialization);static void deserialize(const Serialization &serialization, Serializable &result);static void deserialize(const Serialization &serialization, char &result);static void deserialize(const Serialization &serialization, short &result);static void deserialize(const Serialization &serialization, int &result);static void deserialize(const Serialization &serialization, long &result);static void deserialize(const Serialization &serialization, long long &result);static void deserialize(const Serialization &serialization, float &result);static void deserialize(const Serialization &serialization, double &result);template <typename CharTraitsType, typename AllocatorType>static void deserialize(const Serialization &serialization, std::basic_string<Char, CharTraitsType, AllocatorType> &result);template <typename ElementType>static void deserialize(const Serialization &serialization, std::vector<ElementType> &result);public:/// @brief 生成一个异常/// @param type 类型/// @return 异常static InvalidArgumentException make_exception(const String &type);/// @brief 检查是否为整数/// @param serialization 序列/// @return 是否为整数static bool is_integer(const Serialization &serialization);/// @brief 检查是否为浮点数/// @param serialization 序列/// @return 是否为浮点数static bool is_float(const Serialization &serialization);/// @brief 检查是否为字符串/// @param serialization 序列/// @return 是否为字符串static bool is_string(const Serialization &serialization);};
http://www.hkea.cn/news/275159/

相关文章:

  • 网站开发人员必备技能百度优化推广
  • 花都 网站建设百度推广怎么添加关键词
  • 开发公司成本部职责岗位职责和流程苏州网站建设优化
  • 湛江网站制作系统seo排名需要多少钱
  • 城乡现代社区建设seo关键词推广案例
  • 旅游网站开发外文文献关键洞察力
  • 大学生asp网站开发的实训周长沙百度快速优化
  • 黑龙江省建设网站百度投流运营
  • 网站关键词太多好不好兰州seo整站优化服务商
  • 义乌网站设计网店推广策划方案
  • 无锡网站优化工作室网站关键词排名优化推广软件
  • 长沙做网站的公司亚马逊seo什么意思
  • 仪征建设银行官方网站怎么优化一个网站
  • 那个网站可以查询美做空基金宁波网站推广平台效果好
  • 杨凌企业网站建设天津seo优化
  • 建设网站的工具免费b站在线观看人数在哪儿
  • 毕业设计餐饮网站建设国内前10电商代运营公司
  • 日本b2b网站市场调研的步骤
  • 强企网做网站网店推广有哪些
  • 博物馆网站建设策划书公司如何在百度宣传
  • 做cpa广告网站教程百度sem推广具体做什么
  • 免费网站建站WWW222国际军事最新消息今天
  • 做网站软件miscrosoft云服务器
  • 如何做盗版小说网站最经典的营销案例
  • 设计类的网站和简介关键词优化推广排名多少钱
  • 代理记账网站怎么做北京seo方法
  • cdr做网站企业网站建设的基本流程
  • 网站建设需要哪些硬件百度指数排名
  • 2017年网站开发用什么语言找培训机构的app
  • 澳门响应式网站建设seo入门黑帽培训教程