那些年趟过c/c++的坑

2021/8/11 1:05:29

本文主要是介绍那些年趟过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++的坑的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程