1. 程式人生 > >gdb列印資訊1——列印STL和陣列中的內容

gdb列印資訊1——列印STL和陣列中的內容

一、列印vector內容測試程式碼

#include<iostream>
#include<vector>

using namespace std;

int main(int argc, char* argv[])
{
    	vector<int> vec(10);	// 10 zero-initialized elements
	for (int i = 0; i < vec.size(); ++i) {
		vec[i] = i;
	}

	cout << "vec contains: ";
	for (int i = 0;
i < vec.size(); ++i) { cout << ' ' << vec[i]; } cout << '\n'; return 0; }

測試過程

這裡對cpp檔案,是不需要CMakeLists.txt的,而是使用g++命令
然後使用命令print(縮寫p)即可檢視vector的內容,同時包含了vector的長度和容量資訊
在這裡插入圖片描述


二、列印set內容測試程式碼

#include <iostream>
#include <vector>
#include <set>
using namespace std; int main(int argc, char* argv[]) { int arr[5] = {0,1,2,3,4}; set<int> iset(arr, arr+5); set<int>::iterator ite1 = iset.begin(); set<int>::iterator ite2 = iset.end(); for(;ite1!=ite2;ite1++) { cout<<*ite1; } cout << '\n'
; return 0; }

測試過程

如圖,如果是set,還給你排好序了
在這裡插入圖片描述

其他的stl容器同理


三、列印陣列中的內容

使用命令print 陣列名即可
需要注意的是,如果陣列太大了,預設最多會顯示200個元素
可以使用set print elements 0設定為沒有顯示元素個數的限制


四、列印陣列中任意連續元素值

使用命令p 陣列名[起始下標]@要列印的個數
在這裡插入圖片描述


五、列印陣列內容的同時顯示下標

預設情況下是不顯示陣列下標的,可以通過命令set print array-indexes on開啟
在這裡插入圖片描述