目录
1. 问题:
2. 代码:
3. 结论:
1. 问题:
C++11编程中平时我们极高频率用到的类,比如string/iterator等等,总是复制来复制去,那复制一次内存开销增加多少哪?这和performance是极其相关的。
这是一个轻松的话题,做一下sizeof 即可(不考虑堆上的消耗,比如string背后存字符串的开销),以下是代码:

目录
1. 问题:
2. 代码:
3. 结论:
C++11编程中平时我们极高频率用到的类,比如string/iterator等等,总是复制来复制去,那复制一次内存开销增加多少哪?这和performance是极其相关的。
这是一个轻松的话题,做一下sizeof 即可(不考虑堆上的消耗,比如string背后存字符串的开销),以下是代码:
#include#include #include #include using namespace std; int main(){ cout<<"sizeof(string):"< ):"< )< ):"< )< vi{1,2,3,4,5}; cout<<"sizeof(vector {1,2,3,4,5}):"< int):"< ::iterator)< double):"< ::iterator)< string:"< ::iterator)< ):"< )< ):"< )< ):"< )< ):"< )< ):"< >)< ):"< )< ):"< )< ):"< >)< ):"< )< ):"< )< ):"< >)< 3. 结论:
string: 8 iterator: 8 pair: sizeof(first)+sizeof(second) vector: 24 shared_ptr: 16 weak_ptr: 16 unique_ptr: 8