我有一个定义为
的队列df <- data.frame("name" = LETTERS[1:4],
"lon" = c(23.231, 1.23, 115.40, -87.98),
"lat" = c(32.78, -34.30, 21.92, -12.2))
library(geosphere)
mat <- distm(c(-73.001, 40.21), as.matrix(df[, -1]))
colnames(mat) <- df$name
mat
# A B C D
# [1,] 8209788 11253350 13066503 6035987
CData是哪个类
queue<CData*> queue1;
我假设我的queue1是初始值,如下面的代码
typedef unsigned char U8;
typedef unsigned int U32;
class CData
{
private:
U8* m_Data;
U32 m_Len;
public:
CData(void) : m_Data(NULL), m_Len(0)
{
}
~CData(void)
{
FreeData();
}
void FreeData()
{
if (m_Data)
{
delete[] m_Data;
m_Data = NULL;
}
}
};
现在,我的queue1将包含值
for (U32 k = 0; k<5; k++)
{
size_t data_size = 1;
U8 *data_buf = new U8[data_size];
for (size_t i = 0; i < data_size; ++i)
{
data_buf[i] = k;
}
CData* result = new CData(data_buf, data_size);
queue1.push(result);
delete[] data_buf;
data_buf = NULL;
}
我的问题是如何在queue1的开头插入3个零值,以便结果为
0 1 2 3 4
其次,如何在应用程序完成后释放/删除queue1。如果我用了
0 0 0 0 1 2 3 4
如何删除CData* result = new CData();
变量?我在Ubuntu中使用C ++。提前致谢。
答案 0 :(得分:2)
根据here的定义:
std::queue
类是一个为程序员提供的容器适配器 队列的功能 - 特别是FIFO(先进先出, 先出)数据结构。
这意味着如果您需要将元素插入到beging中,则需要另一个抽象。例如std::deque
(双端队列)。