C++ 使用类似std::vector<;标准::复杂<;双倍>&燃气轮机;在boost::asio::buffer中

C++ 使用类似std::vector<;标准::复杂<;双倍>&燃气轮机;在boost::asio::buffer中,c++,c++11,boost,C++,C++11,Boost,我试图使用boost library在两台主机之间创建UDP通信,但我不想发送/接收字符串,而是想发送一个std::vector,再次查看错误消息: 错误:无法将“input.std::vector::front()”从“_gnu_cxx::_alloc_traits::value_type{aka std::complex}”转换为“std::vector” 发送器(input.front()) 如果我们把它稍微改写为: 错误:无法将“input.std::vector::front()”从s

我试图使用boost library在两台主机之间创建UDP通信,但我不想发送/接收字符串,而是想发送一个
std::vector,再次查看错误消息:

错误:无法将“input.std::vector::front()”从“_gnu_cxx::_alloc_traits::value_type{aka std::complex}”转换为“std::vector”

发送器(input.front())

如果我们把它稍微改写为:

错误:无法将“input.std::vector::front()”从std::complex转换为“std::vector”

发送器(input.front())

问题是什么变得更加明显了
input.front()
只返回(引用)向量的第一个元素,但
Sender
需要整个向量。你想要:

Sender(input);

旁白:我将把参数改为
Sender
,改为:

void Sender(const std::vector<std::complex<double>>& in)
void发送方(const std::vector&in)

这样,您就不需要复制向量-只需使用原始向量的(常量)引用。如果要通过UDP发送,复制向量可能很不重要,但这是一个有用的习惯。

事实上,问题在于input.front(),但我注意到,如果显示input.front(),我会看到一个复杂的值,如(a,b),其中a是实部,b是虚部。因此,我需要通过UDP发送这些值,而不是这些值的地址

也许我不太清楚。如果您知道UHD C++ ++ API,则有一个函数:<代码> RXJSUST-> ReV(和Buff.FrnTor),Buff。siz(),MD,3,Enable SigZeMax图;代码>中,它保存来自rf设备的样本,并将其存储在名为buff的缓冲区中。如果我从函数中了解到,它将样本(顺便说一句,样本很复杂)存储到主机内存中,或者某种程度上

这是实时发生的,我想知道如何通过UDP传输&buff.front()。为了回答上面的问题,我认为样本一次发送一个,而不是孔向量,因为是实时发送的。如果我错了,请纠正我


如果我写:
std::coutWhat type是
input
还是
buff
。。。你的问题不清楚,你想发送什么,整个向量还是一个元素?buff是一个std::vector,我只想发送一个元素。
Sender(input);
void Sender(const std::vector<std::complex<double>>& in)