二维vector容器读取txt坐标

template <class vector>
struct HeadLocation{
	vector x;
	vector y;
};

vector<HeadLocation<int> > gt_loc_;  //二维vector容器

void ReadLocationFromTextFile(const string filename) {
	cout << "Opening file " << filename << endl;
	ifstream infile(filename.c_str());
	if (!infile){ printf("不存在此文本文件!"); };
	int num_crowd;
	infile >> num_crowd;
	if (num_crowd <= 0){ cout << "Number of crowd must be positive!\n"; };
	gt_loc_.clear(); //size = 0, capicity =?
	gt_loc_.resize(num_crowd); //size = num_crowd(行)

	for (int i = 0; i < num_crowd; i++) {
		/*HeadLocation<float> location_t;
		HeadLocation<int> location(location_t.begin(), location_t.end());*/
		HeadLocation<int> location;
		infile >> location.x >> location.y;

		for (int j = 0; j < 3; ++j) {
			location.x = (location.x - 1) / 2;
			location.y = (location.y - 1) / 2;
		}
		gt_loc_[i] = location;
	}
	infile.close(); // 关闭文件
}

  

原文地址:https://www.cnblogs.com/byteHuang/p/8378657.html

时间: 2024-11-10 15:04:17

二维vector容器读取txt坐标的相关文章

二维vector访问

//  方式1 vector<vector<double> > p1(pt1.size(), vector<double>(2)); // 方式2 vector<vector <double>> ps; vector<double> pp; for(int i = 0; i < pt1.size(); i++) { p1[i][0] = pt1[i].x; p1[i][1] = pt1[i].y; pp.push_back(pt

动态创建二维vector数组+指针与引用的区别

二维vectorvector<vector <int> > ivec(m ,vector<int>(n));    //m*n的二维vector 动态创建m*n的二维vector方法一:vector<vector <int> > ivec;ivec.resize(m);for(int i=0;i<m;i++) ivec[i].resize(n); 方法二:vector<vector <int> > ivec;ivec

二维vector的初始化

1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 int main() 6 { 7 int m, n; 8 cin >> m >> n; 9 vector<vector<int> > value(m, vector<int>(n)); // 两个>用空格分开 10 for (int i = 0; i < m; i++){ 1

C++-二维vector初始化大小方法-备忘

来源: C++——二维vector初始化大小方法 1.直接用初始化方法 名字为vec,大小为n*m,初始值为0的二维vector. vector<vector<int> > vec(n, vector<int>(m, 0)); 2.用resize()来控制大小 vector<vector<int> > vec; vec.resize(n);//n行 for (int i = 0; i < n; ++i){ vec[i].resize(m);

C#读txt文件并写入二维数组中(txt数据行,列未知)

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace 二维数组 { class Program { static void Main(string[] args) { int row = 0;//行 int col = 0;//lie FileStream fs; string path = @"C:\Documents an

STL学习二:Vector容器

1.Vector容器简介 vector是将元素置于一个动态数组中加以管理的容器. vector可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲). vector尾部添加或移除元素非常快速.但是在中部或头部插入元素或移除元素比较费时. 2.vector对象的默认构造 vector采用模板类实现,vector对象的默认构造形式 vector<T> vecT; vector<int> vecInt;          //一个存放int的vector容器

二维码的读取

读取二维码需要导入AVFoundation框架 利用摄像头识别二维码中的内容 1.输入(摄像头) 2.由会话将摄像头采集到的二维码图像转换成字符串数据 3.输出数据 4.由预览图层显示扫描场景 #import "ViewController.h"#import <AVFoundation/AVFoundation.h> @interface ViewController ()<AVCaptureMetadataOutputObjectsDelegate>@pro

STL之二:vector容器用法详解

转载于:http://blog.csdn.net/longshengguoji/article/details/8507394 vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组.像数组一样,vector类也用从0开始的下标表示元素的位置:但和数组不同的是,当vector对象创建后,数组的元素个数会随着vector对象元素个数的增大和缩小而自动变化. vector类常用的函数如下所示: 1.构造函数 vector():创建一个空vector vector(int nSize)

使用python读取txt坐标文件生成挖空矿山_采矿批量

# -*-coding:utf-8-*- import arcpy import fileinput import os # 采矿权坐标格式举例 # 1,3509447.04,37493933.70 # 2,3509447.05,37495583.71 # 3,3508597.04,37495583.72 # 4,3508597.04,37494783.71 # 5,3508336.97,37494583.71 # 6,3508247.03,37493933.70 # *,1300,-400,,