大佬教程收集整理的这篇文章主要介绍了c – 如何从原始数组到std :: vector执行等效的memcpy?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
class MyClass { private: unsigned char* m_Buffer; int m_BufferSize; public: bool SetBuffer(int iSize,const unsigned char* pArray); }; bool MyClass::SetBuffer(int iSize,const unsigned char* pArray) { bool bOK = false; if (pArray != NULL && iSize > 0) { delete [] m_Buffer; m_Buffer = new unsigned char[iSize]; memcpy(m_Buffer,pArray,iSizE); m_BufferSize = iSize; bOK = true; } return bOK; }
我根本不喜欢这个代码,我真的想用std :: vector< unsigned char>替换指针.我的问题是,我将如何执行memcpy方面?如果我将一个向量作为参数传递给我的函数,我可以使用迭代器复制它,但我无法控制参数参数类型,所以我坚持使用unsigned char *.有没有办法使用迭代器,或者将矢量调整到合适的大小,然后访问其内部数组,以便我仍然可以使用memcpy复制数据?甚至更好的东西使用迭代器?我知道我可以使用循环和push_BACk但这对我来说似乎非常低效.我们将非常感激地收到任何建议.
以上是大佬教程为你收集整理的c – 如何从原始数组到std :: vector执行等效的memcpy?全部内容,希望文章能够帮你解决c – 如何从原始数组到std :: vector执行等效的memcpy?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。