OPencv学习之十一——一点小总结(编程小错误,数据类型,常用类)
发布日期:2025-06-18 16:18:27
浏览次数:4
分类:精选文章
本文共 2148 字,大约阅读时间需要 7 分钟。
C++ vector类详细指南
1. vector基础用法
vector是C++中一个强大的动态数组容器,广泛应用于数据存储和处理。以下是vector的基础操作:
- 创建vector对象:使用
vector<T>定义一个动态数组,T为元素的数据类型。vector vec;
- 添加元素:使用
push_back()函数将元素添加到末尾。vec.push_back(10);vec.push_back(20);
- 访问元素:使用下标访问元素,注意索引从0开始。
cout << vec[0] << endl; // 输出第一个元素
- 删除元素:使用
erase()函数删除元素。// 删除第一个元素vec.erase(vec.begin());
- 清空vector:使用
clear()函数清空所有元素。vec.clear();
2. vector高级功能
- 向量大小操作:获取向量的长度使用
size()函数。int size = vec.size();
- 迭代器操作:使用迭代器遍历向量元素。
vector ::iterator it = vec.begin();for (it = vec.begin(); it != vec.end(); ++it) { cout << *it << endl;} - 排序功能:使用
sort()函数对向量进行排序,默认按升序排列。sort(vec.begin(), vec.end());
- 逆序排列:使用
reverse()函数将向量反转。reverse(vec.begin(), vec.end());
3. vector的插入操作
- 插入单个元素:使用
insert()函数将元素插入指定位置。vec.insert(vec.begin() + 1, 30); // 在位置1前插入30
- 插入多个元素:使用
insert()函数插入多个元素。vec.insert(vec.begin() + 1, 2, 40); // 在位置1前插入两个40
- 插入子向量:将另一个向量的元素插入当前向量。
vector subVec = {10, 20};vec.insert(vec.begin(), subVec.begin(), subVec.end());
4. vector的数据输入输出
- 从文件读取数据:使用
ifstream读取文件数据并存储到vector中。ifstream fin("data.txt");vector vec;int num;while (fin >> num) { vec.push_back(num);} - 向文件写数据:使用
ofstream将向量数据写入文件。ofstream fout("data.txt");for (int num : vec) { fout << num << endl;}
5. vector的常用操作总结
- 向量长度验证:使用
size()和empty()函数检查向量是否为空。if (!vec.empty()) { cout << "向量不为空" << endl;} - 元素查找:使用
find()函数查找元素。auto it = vec.find(5);if (it != vec.end()) { cout << "找到元素5" << endl;} - 元素替换:使用
replace()函数替换元素。vec.replace(2, 5, 100); // 替换第3个到第4个元素为100
6. vector的高效操作
- 元素插入高效:使用
insert()函数插入元素比push_back()更高效。// 高效插入vec.insert(vec.begin() + i, a);
- 元素删除高效:使用
erase()函数删除元素比delete操作更高效。vec.erase(vec.begin() + i, vec.end() + j);
7. vector的应用场景
- 图像处理:使用vector存储图像数据,例如存储像素信息。
struct Pixel { unsigned char r, g, b; Pixel(unsigned char red = 0, unsigned char green = 0, unsigned char blue = 0) : r(red), g(green), b(blue) {}};vectorpixels;// 读取图像并初始化pixels - 数据处理:将浮点型数据转换为整型存储到vector中。
vector intData;for (float f : floatData) { intData.push_back(static_cast (f));}
通过以上内容,开发者可以全面了解C++中的vector类,灵活运用它进行数据处理和存储。
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2026年06月05日 22时30分03秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
PHPCMS多文件上传和上传数量限制
2023-02-28
phpEnv的PHP集成环境
2023-02-28
PHPExcel一些基本设置总结
2023-02-28
PHPExcel导入导出 若在thinkPHP3.2中使用(无论实例还是静态调用(如new classname或classname::function)都必须加反斜杠,因3.2就命名空间,如/c...
2023-02-28
PHPMailer发送邮件
2023-02-28
phpmailer发送邮件,可以带附件
2023-02-28
phpmyadmin 安装
2023-02-28
phpmyadmin数据库建表及插入
2023-02-28
phprpc简单使用
2023-02-28
phpstorm中Xdebug的使用
2023-02-28
phpstorm中使用svn版本控制器
2023-02-28
phpstorm配置php脚本执行
2023-02-28
phpStudy安装教程
2023-02-28
phpunit
2023-02-28
phpWhois 项目推荐
2023-02-28
phpwind部署问题
2023-02-28
PHP__call __callStatic
2023-02-28
php一句话图片运行,【后端开发】php一句话图片木马怎么解析
2023-02-28
php上传文件找不到临时文件夹
2023-02-28
PHP下curl用法分析
2023-02-28