Release模式下操作vector总是有有关问题
Release模式下操作vector总是有问题
请教下大家,关于vector用法是不是不正确
一、
vector vctTest;
for ( int i = 0; i < 10; i ++ )
{
vctTest.pushback(i);
// 对其+1
vctTest[i] ++;
}
// 下面这些操作恰当吗?
vctTest.insert(vctTest.end(), 8);
vctTest.push_back(88);
vctTest.erase(vctTest.begin() + 1);
------解决方案--------------------
可能是这一句吧vctTest.erase(vctTest.begin() + 1);,当你的vector元素数<=1时就越界了,你加个判断吧
------解决方案--------------------
可能是越界问题。
------解决方案--------------------
vector vctTest;
vector都没有类型的?
vector<int>吧
------解决方案--------------------
gcc4.2表示如下代码在release模式没问题:
请教下大家,关于vector用法是不是不正确
一、
vector vctTest;
for ( int i = 0; i < 10; i ++ )
{
vctTest.pushback(i);
// 对其+1
vctTest[i] ++;
}
// 下面这些操作恰当吗?
vctTest.insert(vctTest.end(), 8);
vctTest.push_back(88);
vctTest.erase(vctTest.begin() + 1);
------解决方案--------------------
可能是这一句吧vctTest.erase(vctTest.begin() + 1);,当你的vector元素数<=1时就越界了,你加个判断吧
------解决方案--------------------
可能是越界问题。
------解决方案--------------------
vector vctTest;
vector都没有类型的?
vector<int>吧
------解决方案--------------------
gcc4.2表示如下代码在release模式没问题:
- C/C++ code
#include <iostream> #include <vector> using namespace std; int main() { vector<int> vctTest; for ( int i = 0; i < 10; i ++ ) { vctTest.push_back(i); vctTest[i] ++; } vctTest.insert(vctTest.end(), 8); vctTest.push_back(88); vctTest.erase(vctTest.begin() + 1); for(vector<int>::iterator it = vctTest.begin(); it != vctTest.end(); ++it) { cout << *it << endl; } return 0; }
------解决方案--------------------
------解决方案--------------------
只要不会越界就对
------解决方案--------------------