我想创造出N座摩天大楼。使用一个inputdata字符串,我想给他们X和Y位置的坐标值。我的主要功能,我用“我”来证明,我试图创造尽可能多的摩天大楼,我可以使用输入数据。本质上,我想创建N/3摩天大楼,并将输入分配给每个坐标。
#include <iostream>
#include <vector>
#include <string>
#include <math.h>
using namespace std;
vector<int> inputData = {1, 4, 10, 3, 5, 7, 9, 10, 4, 11, 3, 2, 14, 5, 5};
int N = inputData.size();
class Buildings{
public:
int yCoordinateLow;
int yCoordinateHigh;
int xCoordinateLeft;
int xCoordinateRight;
};
int main(){
for(int i=0; i<N; i=i+3){
Buildings skyscraper;
skyscraper.xCoordianteLeft = inputData.at(i);
skyscraper.yCoordianteLow = 0;
skyscraper.yCoordinateHigh = inputData.at(i+1);
skyscraper.xCoordinateRight = inputData.at(i+2);
}
return 0;
}发布于 2022-03-18 06:10:43
杰夫·阿特伍德曾说过:用金钱能买到的最好的工具。这些甚至都不贵: Visual社区版是免费的。这样一个合适的IDE会告诉您,除了任务之外,摩天大楼是未使用的。

因为你以后可能想对那些摩天大楼做些什么,所以你应该把它们放在某个地方,例如在另一个矢量中。
int main() {
vector<Buildings> skyscrapers;
for (int i = 0; i < N; i = i + 3) {
Buildings skyscraper{};
skyscraper.xCoordinateLeft = inputData.at(i);
skyscraper.yCoordinateLow = 0;
skyscraper.yCoordinateHigh = inputData.at(i + 1);
skyscraper.xCoordinateRight = inputData.at(i + 2);
skyscrapers.push_back(skyscraper);
}
return 0;
}除此之外,我认为只要原始向量中有N*3坐标,循环就能正常工作。
如果您实现了一个游戏,您可能不会硬编码摩天大楼坐标在一个向量,而是从一个文件读取数据,潜在的每一层。
与其进行所有容易出错的编码,不如立即初始化摩天大楼。
vector<Buildings> skyscrapers = {{1,0,4,10}, {3,0,5,7}, {9,0,10,4}, {11,0,3,4}, {14,0,5,5}};https://stackoverflow.com/questions/71523003
复制相似问题