STL 컨테이너의 요소를 바꾸는 방법은 다음과 같습니다. std::Vector: at() 또는 [] 연산자 사용 std::list: 반복자를 통해 요소에 액세스합니다. std::map 및 std::unordered_map: [ ] 연산자 기호.
C++ 표준 템플릿 라이브러리(STL)에는 요소를 저장하고 조작할 수 있는 다양한 컨테이너가 있습니다. 컨테이너의 특정 위치에 있는 요소를 교체하는 것은 일반적인 작업입니다. 다양한 STL 컨테이너 유형의 요소를 교체하는 방법은 다음과 같습니다.
1. std::Vector
std::vector
中的元素
对于 std::vector
,可以使用 at()
或 []
运算符访问和修改特定的元素。
// 使用 at() std::vector<int> vec{1, 2, 3, 4, 5}; vec.at(2) = 10; // 替换 vec[2] 为 10 // 使用 [] vec[3] = 20; // 替换 vec[3] 为 20
2. 替换 std::list
中的元素
对于 std::list
,可以使用 iterator
访问和修改元素。
std::list<std::string> lst{"a", "b", "c", "d", "e"}; auto it = std::next(lst.begin(), 2); // 迭代器指向 lst[2] *it = "z"; // 替换 lst[2] 为 "z"
3. 替换 std::map
和 std::unordered_map
中的元素
对于 std::map
和 std::unordered_map
,可以使用 []
运算符来访问和修改特定的元素。
// std::map std::map<std::string, int> mp{ {"a", 1}, {"b", 2}, {"c", 3} }; mp["a"] = 10; // 替换 mp["a"] 为 10 // std::unordered_map std::unordered_map<std::string, int> ump{ {"a", 1}, {"b", 2}, {"c", 3} }; ump["a"] = 10; // 替换 ump["a"] 为 10
实战案例
假设我们有一个 std::vector
,其中存储了学生的姓名,我们需要按字母顺序重新排序姓名。我们可以使用 STL 的 std::sort()
函数来排序容器,并使用 at()
函数替换元素以符合排序后的顺序。
std::vector<std::string> names{"John", "Alice", "Bob", "Mary", "David"}; std::sort(names.begin(), names.end()); for (int i = 0; i < names.size(); ++i) { names.at(i) = std::to_string(i + 1) + ". " + names[i]; }
在这个例子中,我们对 names
std::Vector
의 경우 특정 요소를 교체합니다. 요소는 at()
또는 []
연산자를 사용하여 액세스하고 수정할 수 있습니다. 🎜rrreee🎜🎜2. std::list
🎜🎜std::list
의 경우 iterator
를 사용할 수 있습니다. 요소에 액세스하고 수정합니다. 🎜rrreee🎜🎜3. std::map
및 std::unordered_map
🎜🎜의 요소를 std::map
으로 바꿉니다. 및 std::unordered_map
인 경우 []
연산자를 사용하여 특정 요소에 액세스하고 수정할 수 있습니다. 🎜rrreee🎜🎜실용 사례🎜🎜학생의 이름을 저장하는 std::Vector
가 있고 이름을 알파벳 순서로 다시 정렬해야 한다고 가정해 보겠습니다. STL의 std::sort()
함수를 사용하여 컨테이너를 정렬하고 at()
함수를 사용하여 정렬된 순서와 일치하도록 요소를 바꿀 수 있습니다. 🎜rrreee🎜이 예에서는 names
컨테이너를 정렬한 다음 요소를 하나씩 반복하고 위치와 이름을 포함하여 수정된 문자열로 바꿉니다. 최종 결과는 순위가 앞에 붙은 알파벳순 이름 목록입니다. 🎜위 내용은 C++ STL 컨테이너의 요소를 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!