DEBUG C++ ——size_t类型!=int
2008-06-13 15:42
127 查看
如下代码:
string sa[6]={"a1","b2","c3","d4","e5","f6"};
vector<string> svec(sa,&sa[6]);//赋值
cout<<"The value of sa[3]= "<<sa[3]<<endl;//True
cout<<"The value of svec[3]="<<svec[3]<<endl;//Error!!
我看了很久没有发现这个错误的根源是什么。难道vector没有索引操作符?
后面一想,不对啊,vector作为顺序容器,应该具备与string对象的一些基本操作符。
后面一查,原来在vector里面的索引值必须是size_t类型,修改程序如下,即可运行!
size_t index=3;
cout<<"The value of svec[3]="<<svec[index]<<endl;//True!!
所以大家在以后的操作中一定要小心小心再小心,不要像我这样。
string sa[6]={"a1","b2","c3","d4","e5","f6"};
vector<string> svec(sa,&sa[6]);//赋值
cout<<"The value of sa[3]= "<<sa[3]<<endl;//True
cout<<"The value of svec[3]="<<svec[3]<<endl;//Error!!
我看了很久没有发现这个错误的根源是什么。难道vector没有索引操作符?
后面一想,不对啊,vector作为顺序容器,应该具备与string对象的一些基本操作符。
后面一查,原来在vector里面的索引值必须是size_t类型,修改程序如下,即可运行!
size_t index=3;
cout<<"The value of svec[3]="<<svec[index]<<endl;//True!!
所以大家在以后的操作中一定要小心小心再小心,不要像我这样。
相关文章推荐
- c/c++: uint8_t uint16_t uint32_t uint64_t size_t ssize_t数据类型
- 关于C和C++中的基本数据类型int、long、long long、float、double、char、string的大小及表示范围
- 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int---->解决方法 .
- C/C++中各种类型int、long、double、char表示范围(最大最小值)
- error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
- error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 错误的解决方法
- c++ unsigned和int类型转换及运算
- C++中int、string等常见类型转换
- C++中将string类型转换为int, float, double
- C#/C++ 中字节数组与int类型转换
- BaseClasses\ctlutil.h(278) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
- C++中 int、string等类型转换方法
- MFC/C++/C中字符类型CString, int, string, char*之间的转换
- C++中const修饰二级指针(从类型‘int**’到类型‘const int**’的转换无效)
- C++中int类型转换成string类型的方法
- C++中int、string等常见类型转换
- C/C++中int/long/float/double数值类型与字符串互相转换[总结]
- 如何得到int类型的最大值(C++)
- c++中的一些类型转换 : CString,string,int ,long,double,char*,const char*,date等
- C/C++中各种类型int、long、double、char表示范围(最大最小值)