当前位置:首页 > 编程笔记 > 正文
已解决

C++笔记之vector的成员函数swap()和data()

来自网友在路上 161861提问 提问时间:2023-11-05 01:12:13阅读次数: 61

最佳答案 问答题库618位专家为你答疑解惑

C++笔记之vector的成员函数swap()和data()

标准C++中的std::vector类确实有swap()data()这两个成员函数。下面是它们的简要描述:

  1. swap(): std::vectorswap()成员函数用于交换两个向量的内容,实现了高效的交换操作,不需要复制向量的元素。这对于在某些情况下高效地交换两个向量的内容非常有用。
std::vector<T> v1, v2;
// 填充 v1 和 v2v1.swap(v2); // 交换 v1 和 v2 的内容
  1. data(): std::vectordata()成员函数返回一个指向向量数据的指针。这个指针可以用于访问向量的元素。请注意,data()返回的指针是指向连续内存块的首地址,但要小心不要访问越界的元素。
std::vector<T> v;
// 填充 vT* ptr = v.data(); // 获取指向向量数据的指针// 使用 ptr 访问向量的元素

请注意,这些函数是C++标准库的一部分,因此在标准C++中都是可用的。但是,不同版本的C++标准库可能会有一些差异,因此在使用时请查看您所使用的C++标准库版本的文档以确保正确使用这些函数。

示例1:使用swap()函数交换两个std::vector对象的内容

#include <iostream>
#include <vector>int main() {std::vector<int> v1 = {1, 2, 3};std::vector<int> v2 = {4, 5, 6};std::cout << "v1: ";for (int num : v1) {std::cout << num << " ";}std::cout << "\n";std::cout << "v2: ";for (int num : v2) {std::cout << num << " ";}std::cout << "\n";// 使用 swap() 交换 v1 和 v2 的内容v1.swap(v2);std::cout << "After swapping:\n";std::cout << "v1: ";for (int num : v1) {std::cout << num << " ";}std::cout << "\n";std::cout << "v2: ";for (int num : v2) {std::cout << num << " ";}std::cout << "\n";return 0;
}

运行
在这里插入图片描述
示例2:使用data()函数获取std::vector数据的指针

#include <iostream>
#include <vector>int main() {std::vector<double> v = {1.1, 2.2, 3.3, 4.4, 5.5};double* ptr = v.data();std::cout << "Elements in v using data(): ";for (std::size_t i = 0; i < v.size(); ++i) {std::cout << ptr[i] << " ";}std::cout << "\n";return 0;
}

运行
在这里插入图片描述
这两个程序分别演示了swap()data()函数的用法,第一个程序交换了两个向量的内容,第二个程序使用data()函数获取向量数据的指针并访问向量的元素。

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"C++笔记之vector的成员函数swap()和data()":http://eshow365.cn/6-32311-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!