예외가 throw됨: 쓰기 액세스 위반입니다. this->_data이(가) 0x1110112였습니다.
해결된 질문
2573
작성자 없음
작성한 질문수 0
0
계속 제목과 같은 오류가 뜹니다 ㅠㅠ 살려주세요..
#include <iostream>
#include <vector>
using namespace std;
// vector를 만들어보자
template<typename T>
class Vector
{
public:
Vector() : _data(nullptr), _size(0), _capacity(0)
{
}
~Vector()
{
if (_data)
delete[] _data;
}
// [ ]
void push_back(const T& val)
{
if (_size == _capacity)
{
//증설 작업
int newCapacity = static_cast<int>(_capacity * 1.5); //실수에서 int로 변환하면 데이터가 잘릴수도있다
if (newCapacity == _capacity)
newCapacity++;
reserve(newCapacity);
}
// [1][2][3][]
_data[_size] = val;
//데이터 개수 증가
_size++;
}
void reserve(int capacity)
{
_capacity = capacity;
T* newData = new T[_capacity];
//데이터 복사
for (int i = 0; i < _size; i++)
{
newData[i] = _data[i];
//기존에 있던 데이터를 날린다
if (_data)
delete[] _data;
// 교체
_data = newData;
}
}
T& operator[](const int pos) { //레퍼런스로 만들어야 데이터를 넣을 수 있음
return _data[pos];
}
int size() { return _size; }
int capacity() { return _capacity; }
private:
T* _data;
int _size;
int _capacity;
};
int main()
{
Vector<int> v;
//v.reserve(100);
for (int i = 0; i < 100; i++)
{
v.push_back(i);
cout << v.size() << " " << v.capacity() << endl;
}
for (int i = 0; i < v.size(); i++)
{
cout << v[i] << endl;
}
cout << "-----------------" << endl;
//
// for (vector<int>::iterator it = v.begin(); it != v.end(); ++it)
// {
// cout << (*it) << endl;
// }
//
return 0;
}
visualstudio에서 파일분할관리실습시 설정 문의를 드립니다.
0
546
1
정렬함수 좀 더 확실하게 이해 할 방법이 있을까요?
0
445
1
strcpy() 구현 관련 질문
0
519
1
빌드(망치)를 누르니 이런 오류가 떴습니다. 어떻게 해야 하나요?
0
461
1
클래스 타입의 포인터 질문합니다
0
550
1
입력값을 enum 값에 넣어주는거 이제 막혔나요?
0
501
1
템플릿 특수화 관련 질문
0
387
1
포인터 관련 질문합니다!
0
267
1
Unable to start assembler. Check your settings.
0
840
2
cpu선택
0
543
1
포인터 질문이 있습니다
0
330
1
20:35 에서 구조체 크기에 대한 질문입니다!
0
588
1
iterator 삭제관련
0
410
1
함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!
0
315
1
15 분 45초 대 질문
0
312
0
스택 프레임 질문합니다!
2
309
1
오른값 참조 in 게임
0
387
0
동적할당 질문이 있습니다
0
452
1
안녕하세요 메모리에 대해 질문드립니다.
0
309
1
함수객체 의 매개변수
0
365
1
복사생성자
0
439
1
main이나 endl 부분이 주황색으로 표시된건 어떻게 하나요
0
426
1
포인터 실습 강의를 보고 궁금한게 있습니다.
0
358
1
스택 오버플로우
2
794
1






