点(类型)和整数(无结构)之间的连接
Connexion between points (type) and an integer (without struct )
我从文件中读取点,我使用库 Lemon(因为我想稍后使用图形),因此每个点都由类型表示:dim2 :: 点。所以我使用了柠檬/dim2.h 图书馆
我的问题是每个点都有视频的帧数,所以我使用这段代码将文件中的变量放在一个向量中:
std::ifstream file("file1.txt");
std::vector<dim2::Point<int>> pointTable;
std::vector<int> frame;
int temp, temp2,temp3;
while (file >> temp >> temp2 >> temp3)
{
pointTable.push_back(dim2::Point<int>(temp, temp2));
frame.push_back(temp3);
}
//int tailleFmax = frame.max_size;
for (int i = 0; i < (36) ;i++)
//cout << frame[i] <<endl;
// cout << trajectoire[i].x << endl;
cout << trajectoire[i].y << endl;
我的问题:我不知道如何在 c++ 中表示每个点和他的帧号之间的联系并将这个变量命名为 Trajectory。
文件示例 :
155//即 x
168//那是 y
0//这是帧号
364
245
20
546
156
我怀疑map<int, dim2::Point<int>>
是你要找的。
您还可以通过使用 dim2::Point
的提取运算符直接读取该点来简化代码:http://lemon.cs.elte.hu/pub/doc/latest-svn/a00862.html#g2dd3eccf5dece76c03bc6d1c2f348643
最终代码应如下所示:
ifstream file("file1.txt");
map<int, dim2::Point<int>> frame2PointTable;
pair<int, dim2::Point<int>> temp;
while(file >> temp.second >> temp.first) frame2PointTable.insert(temp);
要输出它,您可以执行以下操作:
for(const auto& i : frame2PointTable) cout << i.first << ": (" << i.second.x << ", " << i.second.y << ")n";
重要提示:
- 您的示例文件包含 3 个点,但仅包含 2 个帧号,
- 在本例中,将仅插入 2 个帧号-点组合
- 如果文件中有多个相同的帧号,则只有第一个实例会被
frame2PointTable
接受
pair<int, int>
而不是dim2::Point
给你写了一个活生生的例子:http://ideone.com/qtCZ8L
相关文章:
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 在 QNX 中,如何管理服务器和客户端之间的 IPC 连接?
- 如何在 2 台主机之间保持 UDP 套接字连接打开
- 在QT中的两个窗口之间共享websocket连接
- 在两个类之间连接QPushButton
- 查找树(不属于任何特定类型的简单连接树)中两个节点之间的路径
- Visual Studio 中的套接字 c++ 应用程序无法通过两台计算机之间的以太网连接工作
- QT在两个类之间连接
- 如何在两个设备之间与TCP通信时修复错误"连接被拒绝"
- 我无法在用C++编写的服务器和用 C# 编写的客户端之间建立 UDP 连接
- 连接类实例和另一个类实例中的对话框之间的槽和信号
- 为什么使用 C++ 接口作为类之间的连接?
- 使用Isringstream和struct/vector在给定的数据之间建立连接
- 如何在C 中连接两个对象以在它们之间传输数据
- 通过直接连接或排队连接调用插槽的QTimer超时插槽之间的区别
- 类之间的 QT 连接
- 如何在两个类之间连接函数
- QObject 和级联控件之间的连接是什么?
- 尝试在Qt中连接隐藏信号的两种方式之间做出决定
- 无法在多个 Qthread的 QThread 和 finish() 信号之间连接