在C++ 中,std::vector 的 size() 函数返回的是无符号整数类型size_type,它通常是 std::size_t 类型。std::size_t 是无符号整数类型,它的取值范围是非负整数,因此当使用res.size()-2这样的表达式时,如果 res.size() 的值比 2 小,那么结果将会出现意外的行为。 终于找到问题了,在res.size()-2这样的...
数组下标通常定义为size_t类型,机器相关无符号类型,cstddef头文件中。 指针相减类型ptrdiff_t,带符号类型,也定义在cstddef头文件中。 内置的下标运算符所用的索引值不是无符号类型,这一点和vector string不同。 6 C风格字符串 使用标准库string比使用C风格字符串更加安全和高效。 出现字符串字面值的地方都可以用 ...
for (vector<int>::iterator it=ve1.begin(); it < ve1.end(); it++) {//指针遍历 printf("%d ", *it);//指针访问 } printf("\n"); //常用函数 ve1.size();//vector容器的尺寸 ve1.push_back(10);//在vector容器的尾部添加数据10 for (vector<int...
size(),sizeof(),length(),strlen()对比分析 (1)size()和sizeof() 使用范围: C++中size()函数除了跟length()函数一样可以获取字符串长度之外,还可以获取vector类型的长度。size()主要是进行元素个数的计算,传入的参数一定要是一个数组。不能是单个变量或者是指针。 string str = "ADAS"; vector < int> ...
int nElem = 1 << 24; // 定义vector大小,左移24位相当于乘以2的24次方 printf("Vector size %d\n", nElem); // 打印vector大小 // 分配主机内存 size_t nBytes = nElem * sizeof(float); float *h_A, *h_B, *hostRef, *gpuRef; // 定义主机内存指针 ...
// 使用at()函数修改元素 v.at(1)=20; // 输出修改后的元素 for(inti=0;i<v.size();i++){ printf("%d",v[i]); } return0; } 输出结果为: 10 20 3 4 5 删除vector中的元素 可以使用pop_back()函数删除vector中的最后一个元素。 #include<stdio.h> #include<vector.h> intmain(){ vecto...
strlen() 需要 include<cstring> size() 需要 include<cstddef> vector 是个容器 是复合类型 vector<char> 不会自动添加~ 是char 类型的容器 每个元素是一个个char字符 vecotr<string> 每个元素则会有\0 因为每个元素是string 类型的字符串 char str1[]="abcdefig";string str="abcdefig";co...
2.vector<数据类型> 函数名(a,b).定义a个空间,都初始化为b。 3.vector<数据类型> 函数名1=函数名2. 把动态数组2复制给动态数组1。 4.vector<数据类型> 函数名1(函数名2.begin(),函数名2.end()). 把动态数组2复制给动态数组1。 5.vector<数据类型> 函数名(a,a+sizeof(a)/sizeof(数据类型)),...
voidprintVec(vectoroutputVec) { if(!outputVec.empty()) { intnSize=outputVec.size(); for(inti=0;i<nSize;i++) { printf_s("%d%d\r\n",outputVec.at(i),&(outputVec.at(i))); } } cin.get(); } 然后我们开始测试vector的erase功能我们先申请一个vector对象,并向其中压入10个数据 ve...