C++ map用法詳細總結40例

文章目錄

      • 1. 定義與初始化
      • 2. 插入元素
      • 3. 查找元素
      • 4. 刪除元素
      • 5. 遍歷
      • 6. 訪問成員函數
      • 7. 修改元素
      • 8. 注意事項
      • 9. 使用 `equal_range` 查找鍵值范圍
      • 10. 使用 `emplace` 添加元素
      • 11. 使用 `cbegin` 和 `cend` 獲取常量迭代器
      • 12. 排序規則自定義
      • 13. 使用 `multimap` 存儲重復鍵
      • 14. 判斷 map 是否包含某個鍵
      • 15. 訪問 map 的第一個和最后一個元素
      • 16. 使用 `emplace_hint` 插入元素
      • 17. 使用 `extract` 移除并返回元素
      • 18. 使用 `merge` 合并兩個 map
      • 19. 使用 `extract` 和 `insert` 實現元素移動
      • 20. 使用 `swap` 函數交換兩個 map 的內容
      • 21. 使用 `lower_bound` 和 `upper_bound` 實現范圍查找
      • 22. 使用 `emplace_hint` 并結合 `find` 獲取更好的插入性能
      • 23. 使用 `key_comp` 和 `value_comp` 比較器
      • 24. 使用 `equal_range` 進行精確查找
      • 25. 使用 `max_size` 查詢最大容量
      • 26. 使用 `reserve` 預留空間
      • 27. 使用 `extract` 與 `emplace` 實現原子化的更新操作
      • 28. 使用 `extract` 移除元素并轉換為普通對象
      • 29. 使用 `extract` 清空 map
      • 30. 使用 `std::transform` 迭代 map 并應用函數
      • 31. 使用 `std::copy` 將 map 轉換為 vector
      • 32. 使用 `std::all_of`, `std::any_of`, `std::none_of` 對 map 進行條件檢查
      • 33. 使用 `std::accumulate` 計算 map 中所有值的總和
      • 34. 使用 `std::for_each` 對 map 進行遍歷并打印
      • 35. 使用 `std::map::extract` 結合 `std::set` 移除特定鍵集合中的元素
      • 36. 使用 `std::map::emplace_hint` 更新已存在的鍵值對
      • 37. 使用 `std::unordered_map` 改善查找性能(散列映射)
      • 38. 使用 `std::map::key_type` 和 `mapped_type` 獲取鍵和值的類型
      • 39. 使用 `std::advance` 移動迭代器
      • 40. 使用 `std::prev` 和 `std::next` 訪問相鄰元素

C++ map用法詳細總結

C++ 中的 std::map 是標準庫中的一種關聯容器,它提供了一種鍵值對的存儲方式,其中鍵是唯一的,并且按照升序排序。以下是對 std::map 的詳細用法總結:

1. 定義與初始化

#include <map>
using namespace std;// 聲明一個 map,鍵為 string 類型,值為 int 類型
map<string, int> myMap;// 直接初始化
map<string, int> myMap2 = {{"Alice", 85},{"Bob", 90},{"Charlie", 95}
};

2. 插入元素

// 插入單個鍵值對
myMap["David"] = 88;// 使用 insert 方法插入
pair<map<string, int>::iterator, bool> result = myMap.insert({"Eve", 92});

3. 查找元素

// 查找鍵
auto it = myMap.find("Alice");
if (it != myMap.end()) {cout << "Alice's grade: " << it->second << endl;
} else {cout << "Alice not found." << endl;
}// 使用 at() 獲取值,若鍵不存在則拋出異常
try {cout << "Charlie's grade: " << myMap.at("Charlie") << endl;
} catch (const out_of_range&) {cout << "Charlie not found." << endl;
}

4. 刪除元素

// 刪除指定鍵的元素
myMap.erase("Alice");// 刪除迭代器指向的元素
auto it2 = myMap.find("Bob");
if (it2 != myMap.end()) {myMap.erase(it2);
}

5. 遍歷

// 使用迭代器遍歷
for (auto it = myMap.begin(); it != myMap.end(); ++it) {cout << it->first << ": " << it->second << endl;
}// 使用范圍for循環遍歷
for (const auto& entry : myMap) {cout << entry.first << ": " << entry.second << endl;
}

6. 訪問成員函數

  • size():返回 map 中元素的數量。
  • empty():如果 map 為空則返回 true,否則返回 false
  • clear():清空 map 內的所有元素。
  • count(key):返回 key 出現的次數(對于 map 總是 0 或 1,因為鍵是唯一的)。
  • lower_bound(key)upper_bound(key):返回指向首個大于等于(小于)key的元素的迭代器。

7. 修改元素

// 更新已有鍵的值
myMap["David"] = 90;

8. 注意事項

  • map 中的鍵值對是根據鍵的升序排列的。
  • map 的鍵是不可變的,一旦插入就不能更改鍵的值。
  • map 的迭代器在刪除元素時可能會失效,除非你使用的是 erase() 返回的新迭代器。

以上總結了C++中 std::map 關鍵用法,實際使用時應根據具體需求選擇合適的方法操作。

9. 使用 equal_range 查找鍵值范圍

equal_range 函數返回一個迭代器對,該對包含 map 中與給定鍵相等的所有元素的范圍(對于 map,始終只有一個元素)。這對于在已排序的鍵值對中查找鍵值范圍特別有用。

auto range = myMap.equal_range("Bob");for (auto it = range.first; it != range.second; ++it) {cout << it->first << ": " << it->second << endl;
}

10. 使用 emplace 添加元素

emplace 函數可以在 map 中直接構造(而不是拷貝或移動)元素,從而節省時間和空間。它接受與 map 鍵值對類型相同的參數。

myMap.emplace("Frank", 93); // 直接在map中構造新的鍵值對

11. 使用 cbegincend 獲取常量迭代器

當你需要在不影響 map 的情況下遍歷其元素時,可以使用 cbegin()cend() 獲取常量迭代器。

for (const auto& entry : myMap) {// 使用常量引用,不會修改 map 中的元素
}// 或者使用常量迭代器
for (auto it = myMap.cbegin(); it != myMap.cend(); ++it) {// ...
}

12. 排序規則自定義

默認情況下,std::map 的鍵按照 < 運算符進行排序。如果要使用其他比較函數,可以提供一個自定義的比較器。

struct CustomComparator {bool operator()(const std::string& a, const std::string& b) const {return a.length() < b.length(); // 按字符串長度排序}
};std::map<std::string, int, CustomComparator> myCustomMap;

13. 使用 multimap 存儲重復鍵

std::multimap 類似于 std::map,但允許有重復的鍵,每個鍵可以關聯多個值。

總之,C++ std::map 提供了豐富的功能,支持高效的鍵值對存儲和檢索,尤其適合那些需要根據鍵排序并保持唯一性的場景。通過熟練掌握上述用法,你可以更好地利用這一強大工具。

14. 判斷 map 是否包含某個鍵

除了使用 find 函數檢查鍵是否存在之外,也可以直接使用 count 函數。count 函數返回鍵在 map 中出現的次數,對于 map 來說,如果鍵存在則返回1,否則返回0。

if (myMap.count("Alice") > 0) {cout << "Alice is in the map." << endl;
} else {cout << "Alice is not in the map." << endl;
}

15. 訪問 map 的第一個和最后一個元素

  • begin() 返回指向 map 中第一個元素(按鍵值排序)的迭代器。
  • end() 返回指向 map 結束點的迭代器,不指向任何元素。
  • rbegin()rend() 分別返回逆向迭代器,指向 map 中最后一個元素(按鍵值排序)和逆向迭代器的結束點。
// 輸出 map 中的第一個元素
if (!myMap.empty()) {std::cout << "First element: " << myMap.begin()->first << ": " << myMap.begin()->second << std::endl;
}// 輸出 map 中的最后一個元素
if (!myMap.empty()) {std::cout << "Last element: " << myMap.rbegin()->first << ": " << myMap.rbegin()->second << std::endl;
}

16. 使用 emplace_hint 插入元素

emplace_hint 函數類似于 emplace,但在已經知道插入點的情況下,可以提供一個迭代器提示,有可能提高插入效率。

auto hint = myMap.lower_bound("David"); // 獲取可能的插入點
myMap.emplace_hint(hint, "Eve", 91); // 在 "David" 之后或相應位置插入新的鍵值對

17. 使用 extract 移除并返回元素

C++17 引入了 extract 函數,可以從容器中移除元素并返回一個包含該元素的 std::pair,其中 .first 是指向元素的迭代器,.second 是一個包含了原容器中元素的 std::optional

if (auto result = myMap.extract("Alice"); result.second) {std::cout << "Removed Alice with grade: " << result.first->second << std::endl;// 可以將移除的元素插入到另一個 map 中anotherMap.insert(std::move(result.first));
}

通過熟悉這些高級用法和功能,開發者可以更加靈活高效地使用 C++ 的 std::map 容器。

18. 使用 merge 合并兩個 map

C++17 中引入了 merge 函數,可以將一個 map 的內容合并到另一個 map 中,合并過程中如果遇到相同鍵值,后者會替換前者。

std::map<std::string, int> map1 = {{"Alice", 85}, {"Bob", 90}};
std::map<std::string, int> map2 = {{"Bob", 92}, {"Charlie", 95}};map1.merge(map2); // 合并后,map1 中 Bob 的成績變為 92// map1: {"Alice": 85, "Bob": 92, "Charlie": 95}
// map2: {}

19. 使用 extractinsert 實現元素移動

extract 函數可以配合 insert 函數實現元素在 map 間的移動,而不僅僅是復制。

std::map<std::string, int> map1, map2;// ... 填充 map1 和 map2 ...// 將 map1 中的 "Alice" 移動到 map2
if (auto it = map1.extract("Alice"); it.second) {map2.insert(std::move(it.mapped()));
}// 此時 map1 不再包含 "Alice"

20. 使用 swap 函數交換兩個 map 的內容

swap 函數可以交換兩個 map 的所有內容,包括內部的鍵值對及其順序。

std::map<std::string, int> map1 = {{"Alice", 85}, {"Bob", 90}};
std::map<std::string, int> map2 = {{"Charlie", 95}, {"David", 98}};std::swap(map1, map2);// 交換后,map1 和 map2 的內容互換

通過學習和實踐以上 std::map 的各種用法,開發者能夠更好地應對不同場景下的鍵值對存儲和查詢需求,編寫出高效且易于維護的代碼。

當然,以下是更多的 std::map 使用示例:

21. 使用 lower_boundupper_bound 實現范圍查找

這兩個函數可以用來找到 map 中第一個大于等于(小于)指定鍵的元素,適用于查找某一鍵值范圍內的所有元素。

std::map<std::string, int> grades = {{"Alice", 85}, {"Bob", 90}, {"Charlie", 95}, {"David", 98}};auto lower = grades.lower_bound("Bob");
auto upper = grades.upper_bound("David");for (auto it = lower; it != upper; ++it) {std::cout << it->first << ": " << it->second << std::endl;
}
// 輸出:Bob: 90 Charlie: 95

22. 使用 emplace_hint 并結合 find 獲取更好的插入性能

當已知要插入的位置附近時,可以先用 find 查找,然后將返回的迭代器作為 emplace_hint 的參數。

std::map<std::string, int> grades;
auto it = grades.find("Bob");
grades.emplace_hint(it, "Alice", 85); // 如果 "Bob" 已經在 map 中,那么 "Alice" 將插入在其之前

23. 使用 key_compvalue_comp 比較器

key_comp 返回一個可以用來比較鍵的仿函數,value_comp 返回一個可以用來比較元素(鍵值對)的仿函數。

std::map<std::string, int> grades;// 檢查兩個鍵是否按 map 的排序規則相等
if (grades.key_comp()("Alice", "Bob") == 0) {// ...
}// 檢查兩個鍵值對是否按 map 的排序規則相等
if (grades.value_comp()(std::make_pair("Alice", 85), std::make_pair("Bob", 90)) == 0) {// ...
}

24. 使用 equal_range 進行精確查找

equal_range 返回一個迭代器對,表示 map 中所有鍵等于給定鍵的元素范圍,對于 map,這始終只包含一個元素。

auto range = grades.equal_range("Alice");
assert(range.first == range.second); // 如果 "Alice" 不存在于 map 中,兩者相等

25. 使用 max_size 查詢最大容量

max_size 函數返回 map 可能容納的最大元素數量,但實際可用空間可能受系統限制影響。

std::size_t maxSize = grades.max_size();
std::cout << "Max possible size of grades map: " << maxSize << std::endl;

26. 使用 reserve 預留空間

雖然 map 不能像 vector 那樣直接預留空間,但它會根據需要動態調整內部數據結構,以適應增加的元素。

27. 使用 extractemplace 實現原子化的更新操作

可以提取元素、修改其值,然后重新插入,確保在多線程環境下的原子性。

if (auto entry = grades.extract("Bob"); entry.second) {entry.mapped() = 92; // 修改值grades.emplace_hint(entry.position(), std::move(entry)); // 重新插入
}

28. 使用 extract 移除元素并轉換為普通對象

extract 函數可以將 map 中的元素提取出來,并轉換為一個普通的鍵值對(std::pair<const Key, T>)。

if (auto entry = grades.extract("Bob"); entry.second) {std::pair<const std::string, int> extractedPair = *entry;// 使用 extractedPair 進行進一步操作
}

29. 使用 extract 清空 map

可以通過連續調用 extract 并忽略返回值來清空 map。

while (!grades.empty()) {grades.extract(grades.begin());
}

30. 使用 std::transform 迭代 map 并應用函數

結合迭代器和 std::transform 函數,可以對 map 中的所有值執行某種計算。

std::map<std::string, int> gradesCopy;
std::transform(grades.begin(), grades.end(),std::inserter(gradesCopy, gradesCopy.end()),[](const auto& pair) {return std::make_pair(pair.first, pair.second * 2); // 示例:將成績加倍});

以上示例展現了 std::map 更多的特性和用法,幫助開發者深入了解并有效地使用這一容器。

31. 使用 std::copy 將 map 轉換為 vector

可以將 map 的鍵或值復制到 vector 中。

std::vector<std::string> keys;
std::copy(grades.begin(), grades.end(),std::back_inserter(keys),[](const auto& pair) { return pair.first; });std::vector<int> values;
std::transform(grades.begin(), grades.end(),std::back_inserter(values),[](const auto& pair) { return pair.second; });

32. 使用 std::all_of, std::any_of, std::none_of 對 map 進行條件檢查

bool allAbove90 = std::all_of(grades.begin(), grades.end(),[](const auto& pair) { return pair.second > 90; });bool anyBelow80 = std::any_of(grades.begin(), grades.end(),[](const auto& pair) { return pair.second < 80; });bool noneEqual95 = std::none_of(grades.begin(), grades.end(),[](const auto& pair) { return pair.second == 95; });

33. 使用 std::accumulate 計算 map 中所有值的總和

int totalScore = std::accumulate(grades.begin(), grades.end(), 0,[](int sum, const auto& pair) { return sum + pair.second; });

34. 使用 std::for_each 對 map 進行遍歷并打印

std::for_each(grades.begin(), grades.end(),[](const auto& pair) { std::cout << pair.first << ": " << pair.second << std::endl; });

35. 使用 std::map::extract 結合 std::set 移除特定鍵集合中的元素

std::set<std::string> studentsToRemove = {"Alice", "Bob"};
for (const auto& student : studentsToRemove) {if (auto it = grades.extract(student); it.second) {// 已成功移除學生}
}

36. 使用 std::map::emplace_hint 更新已存在的鍵值對

auto it = grades.find("Charlie");
if (it != grades.end()) {grades.emplace_hint(it, "Charlie", it->second + 1); // 假設將成績增加1分
}

37. 使用 std::unordered_map 改善查找性能(散列映射)

在某些場景下,如果你不需要鍵有序且查找速度更為關鍵,可以考慮使用 std::unordered_map

std::unordered_map<std::string, int> unorderedGrades;
// ... 插入和訪問方式類似 ...

38. 使用 std::map::key_typemapped_type 獲取鍵和值的類型

using StudentName = std::map<std::string, int>::key_type;
using Grade = std::map<std::string, int>::mapped_type;

39. 使用 std::advance 移動迭代器

auto it = grades.begin();
std::advance(it, 2); // 移動到第三個元素的位置

40. 使用 std::prevstd::next 訪問相鄰元素

auto it = std::next(grades.begin()); // 第二個元素
auto previous = std::prev(it); // 第一個元素
auto next = std::next(it); // 第三個元素

請注意,在實際項目中,應結合具體情況合理使用這些技術,以達到代碼簡潔、高效的目的。

python推薦學習匯總連接:
50個開發必備的Python經典腳本(1-10)

50個開發必備的Python經典腳本(11-20)

50個開發必備的Python經典腳本(21-30)

50個開發必備的Python經典腳本(31-40)

50個開發必備的Python經典腳本(41-50)
————————————————

?最后我們放松一下眼睛
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/711396.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711396.shtml
英文地址,請注明出處:http://en.pswp.cn/news/711396.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python音樂信息管理庫之beets使用詳解

概要 在數字化時代,音樂管理變得越來越重要,特別是對于音樂愛好者和專業音樂人士而言。Python作為一種功能強大的編程語言,擁有著豐富的音樂處理庫,其中Beet就是一款備受推崇的音樂信息管理工具。本文將深入探討Beet庫的功能特性、使用方法以及應用場景,并提供豐富的示例…

市場需求預測模型

市場需求預測模型是一種用于預測某個市場或產品的需求量的數學模型。它基于歷史數據、市場趨勢以及其他相關因素&#xff0c;通過統計和分析的方法來預測未來的市場需求情況。 市場需求預測模型可以幫助企業制定合理的生產計劃、庫存管理和市場營銷策略。通過準確地預測市場需…

python實現數字規整(轉中文)

1.思路根據正則匹配數字類型比如手機號、年月日等進行相對的數字規整 話不多說直接上代碼&#xff0c;有新的類型可以按照當前方案進行新增 import redef match_year_digit(match):m str(match.group())relation {1: 一, 2: 二, 3: 三, 4: 四, 5: 五, 6: 六, 7: 七, 8: 八, …

WPF真入門教程31--WPF版房屋租售系統

1、教程回顧 到現在為止&#xff0c;“蒸”入門系列教程已完成了30刺由淺入深地講解&#xff0c;當然不可能講到了WPF的所有技能點&#xff0c;但讀者看到了wpf的內部各種功能及之間的聯系&#xff0c;在此基礎上&#xff0c;再提供一個完整有效的綜合項目&#xff0c;本項目采…

tcp的三次握手和四次揮手?

一&#xff1a;引出 客戶端與服務器之間數據的發送和返回的過程當中需要創建一個叫TCP connection的東西&#xff1b;由于TCP不存在連接的概念&#xff0c;只存在請求和響應&#xff0c;請求和響應都是數據包&#xff0c;它們之間都是經過由TCP創建的一個從客戶端發起&#xff…

身份驗證錯誤。要求的函數不受支持。遠程計算機:[IP地址]。這可能是由于CredSSP加密數據庫修正

出現“身份驗證錯誤。要求的函數不受支持。遠程計算機&#xff1a;[IP地址]。這可能是由于CredSSP加密數據庫修正”的問題&#xff0c;通常是因為Windows更新后&#xff0c;遠程桌面連接&#xff08;RDP&#xff09;的安全性增強&#xff0c;特別是與CredSSP&#xff08;Creden…

[RoarCTF 2019]Easy Calc

這題考查的是: 字符串解析特性目錄讀取文件內容讀取 字符串解析特性詳解&#xff1a;PHP字符串解析特性 &#xff08;$GET/$POST參數繞過&#xff09;&#xff08;含例題 buuctf easycalc&#xff09;_參數解析 繞過-CSDN博客 ascii碼查詢表&#xff1a;ASCII 表 | 菜鳥工具 …

AI智能雷達名片小程序平臺版源碼系統 帶完整的安裝代碼包以及安裝部署教程

在當今數字化快速發展的時代&#xff0c;人工智能&#xff08;AI&#xff09;已滲透到各個領域&#xff0c;尤其是在商務溝通領域&#xff0c;傳統的名片已經不能滿足現代商業的需求。小編給大家分享一款名為“AI智能雷達名片小程序平臺版”的源碼系統&#xff0c;該系統不僅提…

【Linux】將程序的輸出顯示到屏幕,同時寫入到log文件

1. 將程序的輸出顯示到屏幕&#xff0c;同時寫入到log文件 nohup python -u main.py 2>&1 | tee -a log.txt &nohup 放在命令的開頭&#xff0c;表示不掛起&#xff08;no hang up&#xff09;&#xff0c;也即&#xff0c;關閉終端或者退出某個賬號&#xff0c;進…

知乎引流秘籍:玩轉知乎,掘金百萬流量!

知乎&#xff0c;擁有3億注冊用戶、日新增用戶8萬的超級內容平臺&#xff0c;已然成為流量洼地。如何玩轉知乎&#xff0c;掘金百萬流量&#xff1f;這份1500字的實操指南&#xff0c;為你揭秘&#xff01; 一、知乎的優勢&#xff1a;流量大、長尾效應強 1. 流量大&#xff…

QA核心競爭力

核心競爭力的三個階段 我們知道&#xff0c;不同的工作和任務所需要的核心能力不同&#xff0c;因而核心競爭力也就不相同。QA 的入門門檻比較低&#xff0c;這也是 QA 這個群體產生恐慌和焦慮的主要原因。這個群體所涉及的技術面和技能棧非常廣&#xff0c;所以整個職業生涯的…

46-全排列(回溯算法)

題目 給定一個不含重復數字的數組 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意順序 返回答案。 示例 1&#xff1a; 輸入&#xff1a;nums [1,2,3] 輸出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2&#xff1a; 輸入&#xff1a;nu…

商業銀行移動支付發展探析

一、支付交換標準的迭代      銀行卡支付交換標準基于ISO 8583-1987《產生報文的金融交易卡交換報文規范》為發展基礎&#xff0c; 經過30年的產品及應用變革&#xff0c; 支撐交換標準整體框架的數據格式日益顯現其弊端。新型與傳統業務交織&#xff0c; 衍生出多個技術標…

提升智能客服機器人的語義理解能力:理解用戶的語義和意圖

智能客服機器人的發展已經成為現代服務業的一大亮點。它們不僅能夠提供724小時不間斷的服務&#xff0c;而且能夠處理大量的用戶請求&#xff0c;大大提高了服務效率。然而&#xff0c;盡管智能客服機器人的技術已經取得了顯著的進步&#xff0c;但其語義理解能力仍有待提高。為…

List去除重復數據的五種方式

1、使用 LinkedHashSet 刪除 arraylist 中的重復數據 LinkedHashSet 是在一個 ArrayList 刪除重復數據的最佳方法。LinkedHashSet 在內部完成兩件事&#xff1a; 刪除重復數據 保持添加到其中的數據的順序 Java 示例使用 LinkedHashSet 刪除 arraylist 中的重復項。在給定的示例…

【Linux雜貨鋪】調試工具gdb的使用

目錄 &#x1f308;前言&#x1f308; &#x1f4c1;背景介紹 &#x1f4c1; 使用 list [行號] / [函數名] run/r break/b [行號] / [函數名] info break disable break enable break delete break [斷點編號] next/n step/s continue/c finish print/p [變量…

06 vim工具

目錄 概念模式基本操作配置 1. 概念 vim是一個歷史悠久的,多模式的編輯器&#xff0c;是vi的升級版。和ide不同&#xff0c;編輯器僅能編寫文本&#xff0c;不能運行代碼&#xff0c;現階段的代碼編譯的各個過程會分開按步驟執行 2. 模式 vim有很多種模式&#xff0c;想要編…

方格分割644--2017藍橋杯

1.用dfs解決&#xff0c;首先這題的方格圖形就很像一個走迷宮的類型&#xff0c;迷宮想到dfs&#xff0c;最中心點視為起點&#xff0c;起點有兩個小人在這個方格里面對稱行動&#xff0c;直到走出迷宮&#xff08;一個人走出來了另一個人就也走出來了&#xff0c;而走過的點會…

Vmware Esxi 部署Mac OS虛擬機

Vmware Esxi在創建虛擬機的時候是有Mac OS選項的&#xff0c;但是實際創建時&#xff0c;選擇ISO開機后一直反復引導&#xff0c;是有問題的&#xff0c;原因是需要先解鎖&#xff0c;需要在ESXI主機上修改配置并重啟。 首先找到管理-服務-TSM-ssh&#xff0c;點擊啟動&#x…

華納云:linux中tftp命令使用無效怎么解決

如果在Linux中使用TFTP命令時遇到問題&#xff0c;可能是由于以下幾種原因導致的&#xff0c;你可以嘗試以下方法解決&#xff1a; 檢查TFTP服務器是否正確配置&#xff1a;首先確保你正在連接的TFTP服務器已經正確配置并正在運行。你可以使用網絡工具(如ping命令)檢查與TFTP服…