打包vector vect;

wyzegg 2002-08-26 05:19:20
我有一个结构
struct MyStruct
{
vector<int> vect;
};
如何把这个结构的内容在网络上传输,如何美妙的打包。
...全文
42 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
stidio_zhougang 2002-08-26
  • 打赏
  • 举报
回复
补充一下,我前面写的“没有指针”指的是不存在动态内存分配那种。
stidio_zhougang 2002-08-26
  • 打赏
  • 举报
回复
我想由于vector自身的限制,好像不能,我以前见过的SOCKET程序所传的结构类都是没有指针的,不知道是我没有看到还是不能用这种方式。
如果用一定要用vector的话,我想了一个笨办法:
class vector{
public:
vector{pFirst=pLast=data;}
//other operation
private:
int data[256];
int *pFirst,*pLast;
};
如果用这种结构,那么vector中的其他操作就基本上能够安装STL中标准做法做,我真的不能想出其他办法了。
fsheron 2002-08-26
  • 打赏
  • 举报
回复
vector是连续存储的。可参阅STL的例程。
freezingfire 2002-08-26
  • 打赏
  • 举报
回复
这样不好吧?

所有的数据结构,用于网络传输的时候,大概都要手动转换成字符流的。楼主的题目,是需要一个专用的类来完成的。
bluefin 2002-08-26
  • 打赏
  • 举报
回复
vector不一定是连续存储的,这点C++的标准没有定义,只不过目前主要的编译器都把它实现为连续的,但你不能保证在以后的版本中也一样。
DaNiao 2002-08-26
  • 打赏
  • 举报
回复
这样直接传当然是不行的
不过你可以这样子:
int* p = &(vect[0]);
send(p,vect.size());
因为在vector里面实际上是连续存储的

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧