map中的key為結構體時,怎麼find 10

2025-02-27 23:05:16 字數 1635 閱讀 5598

map中的key為結構體時,怎麼find?

1樓:志當存高遠

return <=data ; 實際是比較兩個位址,而這個應該僅跟你變數定義順序有關。跟內容無關。

改成如下即可:

return !strcmp(, data);

c++中stl容器map的方法find針對結構體

2樓:網友

return <= data ; 實際是比較兩個位址,而這個應該僅跟你變數定義順序有關。跟內容無關。

改成如下即可:

return !strcmp(, data);

關於map查詢的問題,自定義結構體作為key,為什麼只過載「<」就可以了

3樓:一鳥似玄帥衣

但現在有個特殊要求,想將結構體作為索引,應該怎麼辦呢,下面寫了一段測試**來展示渣塵怎廳梁悄麼使用。標頭檔案中定義乙個結構:扮渣typedef struct teststruct}teststruct;具體使用:

map maptest; teststruct mapinde

如何在map中使用結構體作為索引

4樓:網友

但現在有個特殊要求,想將結構體作為索引,應該怎麼辦呢,下面寫了一段測試**來展示怎麼使用。標頭檔案中定義乙個結構:typedef struct teststruct}teststruct;具體使用:

mapmaptest; teststruct mapindex;

typedef pairstpar;

這裡的關鍵其實就是定義結構時需要過載<,因為map在插入資料時是自動排序的,在沒有指定排序方法時,使用《來進行排序,因為定義的teststruct比大小的功能,因此過載《就可以使之比大小,這裡用的是其中的元素i。在具體的使用中,索引的值也可以是結構。

map在find時為什麼有但是查不到

5樓:上海_新科醫院

map的find是以key的==作為相等廳凳耐判斷的。而char*型別指標的==是這個指標的值相等而不是指向的串的內容相等。字串常量「aaa"的位址值是固定的,所以==是返回true,但"aaa"這個地粗簡址跟name這個位址是不一樣的,所以並不相等。

建議修改map_a的型別為 std::map,則可以扮春解決你這種判斷問題。

c++ map中如何使用algorithm中的find

6樓:網友

find是map物件的方法,舉個例子吧!

mapm;map::iterator it;

it=;這樣才對。

你說的是algorithm裡面的find()啊!這是algorithm標頭檔案裡面的原型。

template inline

init _find(_init _first, _init _last, const _ty& _val)

它是乙個有返回值的函式,所以你還應該定義乙個迭代器,it=find(,,key);

7樓:網友

map容器是使用自己的成員函式find來查詢鍵值key的;

哪位高手知道C 中結構體型別的資料怎麼運算啊?

c 類結構體和函式的區別是什麼?c 中的結構體與類的區別只在於結構體的成員預設為公有成員 public可見性 而類的成員預設為私有成員 private可見性 c 中的結構體不同於c語言裡的結構體,c裡的結構體只能封裝一些單一的資料,不能含方法,但在c 的結構體內可以有建構函式,成員函式,還可以指定成...

結構體中在大括號外的變數和指標分別代表什麼?同時那個指標這麼用是什麼意思

typedef struct bitnode 是否忘記打typedef?要不你底下的bitree t是不能通過編譯的!因為按你的寫法bitree是一個變數而不是一個變數型別,另外請去掉兩個圓括號,還有為防止衝突,前邊加下劃線 bitnode,bitree 意思是定義一個結構體型別 用作連結串列的一個...

c 繼承後的記憶體分配問題,c 中給結構體分配動態記憶體的問題 用new嗎 怎麼用

不能訪問是不能直接通過派生類物件直接呼叫,但是可以通過派生類的成員函式呼叫基類的公有函式來訪問基類的私有屬性.難道編譯器會分配一塊記憶體放著不管造成記憶體洩漏?因為在派生類中通過可以定義新函式成員來訪問這些記憶體 間接訪問 比如呼叫基類派生下來的成員函式 所以這些記憶體是可以被主動訪問或銷燬的。私有...