1. 程式人生 > >vector和string最重要的區別

vector和string最重要的區別

      這個區別很重要,大家尤其是在做開發的時候一定要注意,否則這就是一個很大的坑!

      Vector和string其實沒有多大區別,都是容器,只是適用範圍不同,都是系統隨機分配一塊連續的記憶體,但就在這就會有區別了,string是字串,在隨機分配一塊記憶體的時候,它會把字串尾部的’\0’插入到記憶體塊,隨著插入字元,’\0’會自動向下移動,所以string定義一個空的字串時,他的記憶體塊是已經分配好的,而vector則不是的,如果vector只是定義一個沒有任何內容的記憶體塊,所以這就是他們的最大區別,下面舉個例子:
例如:
#include <iostream>
#include <vector>
#include <string>
Using namespace std;
Int main()
{
  ////////////vector example////////
  Vector<int> vec_int;
  Cout << Vec_int[0] << endl;//這個語句編譯時是不會報錯的,執行的時候就會崩潰 
  ///////////string example/////////
  String str;
  Cout << (int)Str[0] << endl; //而這個語句就不會報錯,而是輸出0,因為’\0’
  Return 0;
}