c 中vector向量的一些主要問題

2021-06-08 18:25:25 字數 826 閱讀 1259

近日,用到c++ stl中vector,瀏覽到關於出現 「_debug_error("vector iterator not dereferencable") 「問題的一帖子:

#include

#include

using namespace std;

void excisevector(void)

int main(void)

當單步執行到語句"cout跟蹤原始碼,會定位到」 #if _has_iterator_debugging

if (this->_mycont == 0

|| _myptr < ((_myvec *)this->_mycont)->_myfirst

|| ((_myvec *)this->_mycont)->_mylast <= _myptr) 「

語句,原因是當運用迭代器const_iterator 後,是不能對該容器中的成員做修改,只能訪問。在上面程式中,語句」vec1 = vec2「或"vec1.push_back(9)"對容器做了修改,致使違法了const_iterator迭代器的使用規則而報錯。

將上面**作如下修改即可編譯通過:

#include

#include

using namespace std;

void excisevector(void)

執行結果:

10,100

10**修改後,由於對向量的"vec1 = vec2"或"vec1.push_back(9)"是在迭代器const_iterator前操作,在用迭代器const_iterator時,只是對其進行了訪問而沒有做修改操作,因此可以編譯。

向量vector 中主要函式的使用

一 vector用於實現陣列的功能,相當於在陣列的基礎上封裝了一些常用的功能。vector的主要函式 函式名稱 功能push back 在尾部新增乙個元素 pop back 在尾部刪除乙個元素 clear 清空所有元素 at按索引訪問某個位置的元素 front 返回頭元素 back 返回尾元素 si...

c 中 的向量vector

cpp view plain copy print?include include include include 使用向量 就包含向量的標頭檔案 include include using namespace std intmain typedef vector double size type ...

向量的一些東西

高中學過的東西差不多忘完了,最近回顧回顧。和乙個平面的垂直的向量有幾個?無數個,沒問題,這無數個,其實分為兩類,第一類是指向平面外的向量,它們方向都相同,只不過大小不相同,另一類是指向平面裡面的向量,它們方向都相同,但大小都不同。和乙個平面垂直的單位向量有幾個?答案是兩個,咦,不對啊?怎麼不是無數個...