本地string转化到网络内容的一种思路
发布日期:2021-05-15 00:16:58 浏览次数:16 分类:精选文章

本文共 4163 字,大约阅读时间需要 13 分钟。

C++���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������string���vector���������������������������������variable-length������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������

���������������������������������������������������������������������������������������������������������

struct tag_NetStrings {
size_t trueSize;
size_t len[128]; // ������������������������������������������
bool bFolder[128]; // ������������������������������������������������
char buf[1024 * 4]; // ���������������
tag_NetStrings() {
trueSize = 0;
for (size_t i = 0; i < 128; ++i) {
len[i] = 0;
bFolder[i] = false;
}
memset(buf, 0, sizeof(buf));
}
void ToVector(std::vector
>& strs) {
std::string allStr = buf;
size_t allLen = 0;
for (size_t i = 0; i < trueSize; ++i) {
std::string str = allStr.substr(allLen, len[i]);
bool isFolder = bFolder[i];
strs.push_back(std::make_pair(str, isFolder));
allLen += len[i];
}
}
void FromVector(const std::vector
>& strs) {
std::string str;
for (const auto& p : strs) {
str += p.first;
len[trueSize] = p.first.length();
bFolder[trueSize] = p.second;
++trueSize;
}
memcpy(buf, str.c_str(), str.length());
}
};
// ���������������
typedef tag_NetStrings ST_NetStrings;

������������������

���������������������������������������������

// ���������������
std::vector
> strs;
strs.push_back(std::make_pair("���������", true));
strs.push_back(std::make_pair("������", true));
strs.push_back(std::make_pair("������", true));
strs.push_back(std::make_pair("������", false));
// ������������������������������
ST_NetStrings netStrings;
netStrings.FromVector(strs);
// ������������������������
std::vector
> newStrs;
netStrings.ToVector(newStrs);
// ������������
for (const auto& p : newStrs) {
cout << p.first << " ";
if (p.second) {
cout << "(���������)" << endl;
} else {
cout << endl;
}
}

���������������������

���������������������������������������

  • ������������������������������������������������������������������������������������������������������������������������������������������������������������������
  • ������������������������������������������������������������������������������������������������������������������������������������������
  • ���������������������������������������������������������������������������������������������������������������������������������������������
  • ������������������������������������������������������������������������������������������������������������������������������������������������������������������
  • ������

    ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    上一篇:MFC 获得listContrl控件的图标编号.
    下一篇:xgboost的windows安装

    发表评论

    最新留言

    路过,博主的博客真漂亮。。
    [***.116.15.85]2025年05月03日 20时48分58秒