對不起,我對C++ 11一無所知。
但是,我認爲通過::memcpy
複製內存會更快。
#include <vector>
void overwrite(std::vector<int>& dst, const std::vector<int>& src)
{
/* some code - to check the valid of dst and src */
dst.resize(src.size());
::memcpy(dst.data(), src.data(), sizeof(int) * src.size());
}
int main(int argc, char* argv[])
{
// an example
std::vector<int> via, vib;
via.push_back(22);
via.resize(5, 1);
vib.push_back(123);
vib.resize(10, 2);
vib.push_back(123);
overwrite(via, vib);
return 0;
}
的std::vector
數據存儲器總是隨之而來的,所以你可以從一個std::vector
複製到另一個存儲。
注意:當您的std::vector
的項目類型是包含一個或多個指針的對象時,您需要注意。由於::memcpy
只是將地址複製到另一個地址,因此不要複製指針對象。
如果您知道有多少個儲備可能會有所幫助。更多細節可能會有所幫助,因爲您可能不知道細節至關重要。 – Yakk
你能更具體嗎?數據來自哪裏?你想添加到矢量的確切數字是什麼? –
這是一個保證:「...... ***也會讓它變大。」 ? – WhozCraig