那些年趟过c/c++的坑
Posted 有点二的鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了那些年趟过c/c++的坑相关的知识,希望对你有一定的参考价值。
int numberOfArithmeticSlices(vector<int>& nums) {
//当传入的 nums = {1} 时;
cout << "nums.size()= " << nums.size() << endl;
cout << "nums.size()-2 = " << nums.size()-2 << endl; //当结果计算<0 时 这个数很大 4294967295 ,导致下列循环很大,具体原因如下:
int n_lenth = nums.size();
cout << n_lenth -2 << endl;
for(int j = 0 ; j < n_lenth - 2;j++){
cout << "j= " << j << endl;
}
for(int i = 0 ; i < nums.size() - 2;i++){ // 此时,nums.size()-2 为一个很大的值 4294967295
if(i > 3)
break;
cout << "i= " << i << endl;
}
return 0;
}
查看 STL 的源码
// [23.2.4.2] capacity
/** Returns the number of elements in the %vector. */
size_type
size() const _GLIBCXX_NOEXCEPT
{ return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); }
/** Returns the size() of the largest possible %vector. */
size_type
max_size() const _GLIBCXX_NOEXCEPT
{ return _S_max_size(_M_get_Tp_allocator()); }
long unsigned int = unsigned long int
typedef size_t size_type;
typedef __SIZE_TYPE__ size_t;
#define __SIZE_TYPE__ long unsigned int
以上是关于那些年趟过c/c++的坑的主要内容,如果未能解决你的问题,请参考以下文章