C++ 把TXT数据读入到向量VECTOR

读入一个文件aaa.txt的数据到向量中,文件中是一些整数(个数未知),判断向量中的元素有多少个两两相等的数对:

代码如下:

1 #include
2 #include
3 #include
4 using namespace std;
5 int main()
6 {
7 ifstream in(“aaa.txt”);
8 vector s;
9 for (int a; in >> a;)
10 s.push_back(a);
11 int pair = 0;
12 for (int i = 0; i < s.size() - 1;++i)
13 for (int j = i + 1; j < s.size();++j)
14 if (s[i] == s[j]) pair++;
15 cout << pair << “\n”;
16
17 cin.get();
18 return 0;
19 }

转载 https://www.cnblogs.com/ariel-dreamland/p/9034651.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要读取 PLY 文件,你需要使用一个 PLY 文件解析器。在 C++ ,有一些库可以帮助你解析 PLY 文件,比如: - libply:这是一个开源的 C 库,可以读取和写入 PLY 文件。它提供了一个简单的 API,可以让你轻松地访问文件的顶点、面和属性数据。 - VTK:这是一个强大的开源计算机视觉库,可以处理各种各样的数据格式,包括 PLY 文件。VTK 提供了许多用于加载和处理 PLY 文件的工具。 - Assimp:这是一个用于导入和导出各种 3D 模型格式的库。它可以读取 PLY 文件,并将其转换为其他格式,比如 OBJ、FBX、Collada 等等。 如果你想使用 OpenGL 来渲染 PLY 文件,你需要将读取到的数据转换为顶点数组和索引数组。然后,你可以使用 OpenGL 提供的函数来渲染这些数据。以下是一个简单的示例代码,可以读取一个 PLY 文件,并将其渲染为一个简单的三角形网格: ```c++ #include <iostream> #include <fstream> #include <string> #include <vector> #include <GL/glut.h> struct Vertex { float x, y, z; }; struct Face { int a, b, c; }; std::vector<Vertex> vertices; std::vector<Face> faces; void loadPLY(std::string filename) { std::ifstream file(filename); std::string line; int numVertices = 0, numFaces = 0; while (std::getline(file, line)) { if (line.find("element vertex") != std::string::npos) { numVertices = std::stoi(line.substr(15)); } else if (line.find("element face") != std::string::npos) { numFaces = std::stoi(line.substr(13)); } else if (line.find("end_header") != std::string::npos) { break; } } for (int i = 0; i < numVertices; i++) { Vertex v; file >> v.x >> v.y >> v.z; vertices.push_back(v); } for (int i = 0; i < numFaces; i++) { Face f; int numVerts; file >> numVerts >> f.a >> f.b >> f.c; if (numVerts != 3) { std::cerr << "Error: PLY file contains non-triangular faces" << std::endl; } faces.push_back(f); } file.close(); } void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glBegin(GL_TRIANGLES); for (auto face : faces) { auto a = vertices[face.a]; auto b = vertices[face.b]; auto c = vertices[face.c]; glVertex3f(a.x, a.y, a.z); glVertex3f(b.x, b.y, b.z); glVertex3f(c.x, c.y, c.z); } glEnd(); glutSwapBuffers(); } void init() { glClearColor(1.0, 1.0, 1.0, 1.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(60.0, 1.0, 0.1, 100.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); } int main(int argc, char **argv) { if (argc != 2) { std::cerr << "Usage: " << argv[0] << " filename.ply" << std::endl; return 1; } glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize(800, 800); glutCreateWindow("PLY Viewer"); glutDisplayFunc(display); init(); loadPLY(argv[1]); glutMainLoop(); return 0; } ``` 这个代码片段使用了 GLUT 和 OpenGL 来创建一个窗口,并将 PLY 文件渲染为一个简单的三角形网格。在 `loadPLY` 函数,我们读取 PLY 文件,并将顶点和面数据存储到 `vertices` 和 `faces` 向量。然后,在 `display` 函数,我们使用 OpenGL 提供的函数来渲染这些数据。注意,这个代码片段假设 PLY 文件只包含三角形面。如果 PLY 文件包含其他类型的面,比如四边形或多边形,你需要修改代码来支持这些面类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值