vector和string最重要的区别

来源:互联网 发布:沉迷网络的坏处 编辑:程序博客网 时间:2024/05/21 15:42

      这个区别很重要,大家尤其是在做开发的时候一定要注意,否则这就是一个很大的坑!

      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;
}

更多详细内容在这里!

0 0