>  기사  >  백엔드 개발  >  C++ STL 컨테이너의 요소를 바꾸는 방법은 무엇입니까?

C++ STL 컨테이너의 요소를 바꾸는 방법은 무엇입니까?

WBOY
WBOY원래의
2024-06-05 16:45:011110검색

STL 컨테이너의 요소를 바꾸는 방법은 다음과 같습니다. std::Vector: at() 또는 [] 연산자 사용 std::list: 반복자를 통해 요소에 액세스합니다. std::map 및 std::unordered_map: [ ] 연산자 기호.

如何替换C++ STL容器中的元素?

C++ STL 컨테이너의 요소를 바꾸는 방법

C++ 표준 템플릿 라이브러리(STL)에는 요소를 저장하고 조작할 수 있는 다양한 컨테이너가 있습니다. 컨테이너의 특정 위치에 있는 요소를 교체하는 것은 일반적인 작업입니다. 다양한 STL 컨테이너 유형의 요소를 교체하는 방법은 다음과 같습니다.

1. std::Vectorstd::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::mapstd::unordered_map 中的元素

对于 std::mapstd::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::mapstd::unordered_map🎜🎜의 요소를 std::map으로 바꿉니다. 및 std::unordered_map인 경우 [] 연산자를 사용하여 특정 요소에 액세스하고 수정할 수 있습니다. 🎜rrreee🎜🎜실용 사례🎜🎜학생의 이름을 저장하는 std::Vector가 있고 이름을 알파벳 순서로 다시 정렬해야 한다고 가정해 보겠습니다. STL의 std::sort() 함수를 사용하여 컨테이너를 정렬하고 at() 함수를 사용하여 정렬된 순서와 일치하도록 요소를 바꿀 수 있습니다. 🎜rrreee🎜이 예에서는 names 컨테이너를 정렬한 다음 요소를 하나씩 반복하고 위치와 이름을 포함하여 수정된 문자열로 바꿉니다. 최종 결과는 순위가 앞에 붙은 알파벳순 이름 목록입니다. 🎜

위 내용은 C++ STL 컨테이너의 요소를 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.