【发布时间】:2010-06-07 20:56:09
【问题描述】:
我正在尝试将浮点数(输入)的二维向量放入 c++ 中的 char*(输出)中。
void foo(const std::vector<std::vector<float> > &input, char* &output )
{
char charBuf[sizeof(output)];
int counter = 0;
for(unsigned int i=0; i<input.size(); i++)
{
for(unsigned int p=0; p<input.at(i).size(); p++)
{
//what the heck goes here
}
}
【问题讨论】:
-
您应该将迭代器传递给您的函数,而不是传递向量上的引用。
-
@Alerty——为什么?这是我不知道的某种风格吗?通过引用传递不会进行复制,并且您会知道您获得的任何迭代器都将位于向量的开头。
-
@mmr:您可以使用迭代器来简化代码。这是一个例子:stackoverflow.com/questions/2991753/…
-
@Alerty-- 不过,您还是希望有人使用有效的迭代器调用该函数,即从开头开始而不是从开头+随机开始的迭代器。在这里,您必须为内部循环传递一个迭代器数组,所以我不确定这是否节省了这么多。
-
@Alerty - 抱歉,如果这变得有点刻薄 - 这不是我的意图。您向我展示了我知识中的一些非常大的漏洞,感谢您指出。随着我对这些事情的了解越来越多,我对可能应该重构的代码量感到更加畏惧......
标签: c++ serialization type-conversion