legongju.com
我们一直在努力
2025-01-13 13:14 | 星期一

从C++ Cookbook掌握STL容器用法

C++ Cookbook 是一本关于 C++ 编程的实用教程,其中包含了许多关于 STL(Standard Template Library)容器的用法示例

  1. 向量(Vector):
#include
#include

int main() {
    std::vector vec;
    vec.push_back(1);
    vec.push_back(2);
    vec.push_back(3);

    for (int i = 0; i < vec.size(); ++i) {
        std::cout<< vec[i] << " ";
    }

    return 0;
}
  1. 列表(List):
#include
#include 

int main() {
    std::list lst;
    lst.push_back(1);
    lst.push_back(2);
    lst.push_back(3);

    for (std::list::iterator it = lst.begin(); it != lst.end(); ++it) {
        std::cout << *it << " ";
    }

    return 0;
}
  1. 双端队列(Deque):
#include
#include 

int main() {
    std::deque deq;
    deq.push_back(1);
    deq.push_front(0);
    deq.push_back(2);

    for (int i = 0; i < deq.size(); ++i) {
        std::cout << deq[i] << " ";
    }

    return 0;
}
  1. 集合(Set):
#include
#include 

int main() {
    std::set s;
    s.insert(3);
    s.insert(1);
    s.insert(2);

    for (std::set::iterator it = s.begin(); it != s.end(); ++it) {
        std::cout << *it << " ";
    }

    return 0;
}
  1. 多重集合(Multiset):
#include
#include 

int main() {
    std::multiset ms;
    ms.insert(3);
    ms.insert(1);
    ms.insert(2);
    ms.insert(3);

    for (std::multiset::iterator it = ms.begin(); it != ms.end(); ++it) {
        std::cout << *it << " ";
    }

    return 0;
}
  1. 映射(Map):
#include
#include 

int main() {
    std::map m;
    m['a'] = 1;
    m['b'] = 2;
    m['c'] = 3;

    for (std::map::iterator it = m.begin(); it != m.end(); ++it) {
        std::cout << it->first << ": " << it->second << " ";
    }

    return 0;
}
  1. 多重映射(Multimap):
#include
#include 

int main() {
    std::multimap mm;
    mm.insert(std::make_pair('a', 1));
    mm.insert(std::make_pair('b', 2));
    mm.insert(std::make_pair('c', 3));
    mm.insert(std::make_pair('a', 4));

    for (std::multimap::iterator it = mm.begin(); it != mm.end(); ++it) {
        std::cout << it->first << ": " << it->second << " ";
    }

    return 0;
}
  1. 无序集合(Unordered Set):
#include
#include 

int main() {
    std::unordered_set us;
    us.insert(3);
    us.insert(1);
    us.insert(2);

    for (std::unordered_set::iterator it = us.begin(); it != us.end(); ++it) {
        std::cout << *it << " ";
    }

    return 0;
}
  1. 无序多重集合(Unordered Multiset):
#include
#include 

int main() {
    std::unordered_multiset ums;
    ums.insert(3);
    ums.insert(1);
    ums.insert(2);
    ums.insert(3);

    for (std::unordered_multiset::iterator it = ums.begin(); it != ums.end(); ++it) {
        std::cout << *it << " ";
    }

    return 0;
}
  1. 无序映射(Unordered Map):
#include
#include 

int main() {
    std::unordered_map um;
    um['a'] = 1;
    um['b'] = 2;
    um['c'] = 3;

    for (std::unordered_map::iterator it = um.begin(); it != um.end(); ++it) {
        std::cout << it->first << ": " << it->second << " ";
    }

    return 0;
}
  1. 无序多重映射(Unordered Multimap):
#include
#include 

int main() {
    std::unordered_multimap umm;
    umm.insert(std::make_pair('a', 1));
    umm.insert(std::make_pair('b', 2));
    umm.insert(std::make_pair('c', 3));
    umm.insert(std::make_pair('a', 4));

    for (std::unordered_multimap::iterator it = umm.begin(); it != umm.end(); ++it) {
        std::cout << it->first << ": " << it->second << " ";
    }

    return 0;
}

这些示例展示了如何使用 C++ STL 容器。你可以根据需要选择合适的容器类型,并学习如何使用它们的成员函数来操作数据。在实际项目中,你可能需要根据特定需求和性能要求选择合适的容器。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/106240.html

相关推荐

  • C++中notify与信号量的区别

    C++中notify与信号量的区别

    在C++中,notify()函数通常与条件变量(condition variable)一起使用,而信号量(semaphore)是一种同步原语,用于控制对共享资源的访问 notify()函数: notify...

  • C++ notify在多线程编程中的应用

    C++ notify在多线程编程中的应用

    在C++多线程编程中,notify通常与条件变量(condition variables)一起使用,以实现线程间的同步和通信。条件变量允许一个或多个线程等待,直到另一个线程发出通...

  • 如何在C++中使用notify通知机制

    如何在C++中使用notify通知机制

    在 C++ 中,std::condition_variable 提供了一种线程间的通信机制,可以用来实现线程同步
    下面是一个简单的示例,展示了如何使用 std::condition_variable ...

  • C++中notify机制是如何实现的

    C++中notify机制是如何实现的

    在 C++ 中,std::condition_variable 类提供了一种条件变量,可以用于线程间的同步。它常与 std::mutex 和 std::unique_lock 或 std::lock_guard 结合使用。

  • C++ Cookbook中的高级算法讲解

    C++ Cookbook中的高级算法讲解

    《C++ Cookbook》是一本关于C++编程的实用教程,其中包含了许多高级算法的讲解 排序算法: 快速排序(Quick Sort)
    归并排序(Merge Sort)
    堆排序(H...

  • 如何利用C++ Cookbook提升编程技能

    如何利用C++ Cookbook提升编程技能

    C++ Cookbook是一本专注于C++编程技巧和最佳实践的书籍,旨在帮助开发者提升他们的编程技能。以下是利用C++ Cookbook提升编程技能的方法: 理解C++的基本概念:首...

  • C++ Cookbook推荐的最佳实践有哪些

    C++ Cookbook推荐的最佳实践有哪些

    C++ Cookbook推荐的最佳实践涵盖了代码设计、命名约定、代码风格等多个方面,旨在提高代码的可读性、可维护性和性能。以下是一些关键的最佳实践: 使用新的C++标...

  • 从C++ Cookbook学习模板元编程

    从C++ Cookbook学习模板元编程

    《C++ Cookbook》是一本关于C++编程的实用教程,其中包含了许多关于模板元编程的示例和解释 理解模板元编程的基本概念:模板元编程(Template Metaprogramming,...