#Why do I get this error?

15 messages · Page 1 of 1 (latest)

tall lynx
#

CODE

/*
Given an integer array nums, rotate the array to the right by k steps, where k
is non-negative.

Example 1:

Input: nums = [1,2,3,4,5,6,7], k = 3
Output: [5,6,7,1,2,3,4]
Explanation:
rotate 1 steps to the right: [7,1,2,3,4,5,6]
rotate 2 steps to the right: [6,7,1,2,3,4,5]
rotate 3 steps to the right: [5,6,7,1,2,3,4]

Example 2:

Input: nums = [-1,-100,3,99], k = 2
Output: [3,99,-1,-100]
Explanation:
rotate 1 steps to the right: [99,-1,-100,3]
rotate 2 steps to the right: [3,99,-1,-100]

Constraints:

    1 <= nums.length <= 105
    -231 <= nums[i] <= 231 - 1
    0 <= k <= 105
*/
#include <iostream>
#include <vector>
class Solution {
public:
  void rotate(std::vector<int> &nums, int k) {
    size_t length_of_vector = nums.size();
    std::vector<int> temp_array = {0};
    int j = 0;
    // first copy last k elements since they would be overwritten by (i-k)th
    // element of the vector.
    for (size_t i = length_of_vector; i > length_of_vector - k; i++) {
      temp_array[j++] = nums[i];
    }
    // overwrite elements from k to end of the vector.
    for (size_t i = k; i < length_of_vector; i++) {
      nums[i] = nums[i - k];
    }
    // finally copy last k eleemtns from vector which is stored in temp_array
    // back to nums.
    for (size_t i = 0; i < k; i++) {
      nums[i] = temp_array[i];
    }
  }
};
int main(int argc, char *argv[]) {
  std::vector<int> nums = {7, 1, 2, 3, 4, 5, 6};
  Solution s;
  s.rotate(nums, 3);
  for (auto it : nums) {
    std::cout << it;
  }
  return 0;
}

ERROR

wicked quartzBOT
#

When your question is answered use !solved to mark the question as resolved.

Remember to ask specific questions, provide necessary details, and reduce your question to its simplest form. For tips on how to ask a good question use !howto ask.

tall lynx
#
  PrblmOnArrays git:(main) ✗ ./a.out           
/usr/include/c++/15.1.1/bits/stl_vector.h:1263: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](size_type) [with _Tp = int; _Alloc = std::allocator<
int>; reference = int&; size_type = long unsigned int]: Assertion '__n < this->size()' failed.
[1]    534641 IOT instruction (core dumped)  ./a.out

I've decided to learn and solve dsa problems in cpp since that's whats used widely . Solving this rotate_array problem , i'm getting this error which i have no idea about. Any suggestion on how to fix this?

I'm not looking for solution to dsa question since that would be cheating .

vapid wedge
#

just

#

read

#

error

tall lynx
#

it says IOT instruction , what can i possibly understand from it ?

vapid wedge
#

Assertion '__n < this->size()' failed.
core dumped

tall lynx
#

this might be intuitive to you but not to me as someone who is a beginner in cpp

last tendon
#

C++ error messages require a lot of reading. IOT instruction (core dumped) means your program aborted itself and crashed. The key part of the message is Assertion '__n < this->size()' failed..

#

This happens when you go out of bounds

tall lynx
#

oh

last tendon
#

The other key part to see is it heppens in std::vector<...>::operator[](size_type)

wicked quartzBOT
#

This question is being automatically marked as stale.
If your question has been answered, type !solved.
If your question is not answered feel free to bump the post or re-ask.
Take a look at !howto ask for tips on improving your question.