我使用的是Windows XP.我正在尝试向Dev-C++添加一个新库.为此,我需要安装MinGW,然后我被指示将binMinGW目录添加到我的系统路径.但是,我不知道该怎么做.请指导我(一步一步)将其添加到我的系统路径.
我想在我的C++程序中使用exe文件(convert.exe).这个"exe"文件将我的输出文件格式更改为另一种格式.什么时候,我从命令提示符(cmd)使用这个convert.exe,我必须这样输入;
转换-in myfile -out convertedfile -n -e -h
哪里;
myfile =文件的名称,我从我的c ++程序中获得convertfile ="convert.exe"文件的结果-n,-e,-h =是我需要用来获取输出文件的一些参数(列)所需的数据列.
我尝试使用system(convert.exe).但是,它不起作用,因为我不知道如何使用所有这些参数.
我有vector(loops)的向量,它包含整数值.一些内部向量是重复的,但它们的元素顺序不一样.现在,我想得到一个矢量矢量,没有任何重复的内部向量.这是我的vec vec的一个例子;
loop =((9 18 26 11 9),(9 11 26 18 9),(9 18 25 16 9),(11 45 26 11),(11 26 45 11),(16 49 25 16),(16 25 49 16),(18 9 11 26 18),(18 9 16 25 18),(25 16 49 25),(26 11 45 26))
识别任何内部向量是否是另一个内向量的副本; 我开发了一个功能IsDuplicate.这告诉我,(9 18 26 11 9) and (9 11 26 18 9)是重复,然后我可以删除第二个或所有其他重复项.
为了删除向量向量中的重复向量,我实现了以下代码.
Vector<vector<int> > loops;
Vector<vector<int> > ::iterator no1, no2;
Int setno1, setno2;
for (no1=loops.begin(), setno1=0; no1!=loops.end(); no1++, setno1++){
set1 = …Run Code Online (Sandbox Code Playgroud) 我有一组存储在文件中的坐标.我只提取了某些点的"x"坐标并存储在一个名为的向量中:
vector<double> x_points;
Run Code Online (Sandbox Code Playgroud)
然后,我需要获得该向量内的最小和最大x坐标值.所以我使用*max_element和*min_element包括<algorithm>;
double max_in=*max_element(x_points.begin(),x_points.end());
double min_in=*min_element(x_points.begin(),x_points.end());
Run Code Online (Sandbox Code Playgroud)
然后,当我打印值时,使用
cout<<" min-max-In "<<min_in<<" "<<max_in<<" ";
Run Code Online (Sandbox Code Playgroud)
...它只显示整数部分.我需要小数部分的整个值.那么,我怎样才能获得真正的价值,因为我需要那些用这些值做另一个过程?谢谢.请帮忙.
我试图获得两个向量的"交叉产品".这两个向量代表两个平面.所以,我的载体是a1,b1,-1和a2,b2,-1.(我用过,我的飞机方程式ax+by-z+d=0).
这是我定义的函数来获得交叉产品;
vector<double> cross_vector(vector<double> plane1,vector<double> plane2){
vector<double> cross_product;
double a1=plane1.at(0); double a2=plane2.at(0);
double b1=plane1.at(1); double b2=plane2.at(1);
int c1,c2=-1;
double cross_a=(b1*c2)-(b2*c1);
double cross_b=(a2*c1)-(a1*c2);
double cross_c=(a1*b2)-(a2*b1);
cross_product.push_back(cross_a);
cross_product.push_back(cross_;
cross_product.push_back(cross_c);
return cross_product;
}
Run Code Online (Sandbox Code Playgroud)
结果我得到了不同平面组合的结果;
523554 -1.3713e+006 -0.00160687
556340 -1.43908e+006 0.00027957
-568368 1.46225e+006 -0.00034963
143455 -380017 -0.00027957
Run Code Online (Sandbox Code Playgroud)
我无法理解这些价值观1.46225e+006?我的功能有什么问题吗?我知道,我得到的交叉矢量应该是完全水平的.那么,你能告诉我如何检查我的交叉矢量是否水平?希望你的意见.
我有矢量矢量的一些问题.在我的程序中,我已经为vector的向量定义了一个动态内存,并对元素进行了resize和push_back.
vector<vector<double> > *planes = new vector<vector<double> >
planes->resize(s_list->size()); // size of another vector that i need to use
vector<int>::iterator s_no;
for(s_no=s_list->begin(), int i=0; s_no!=s_list->end(); s_no++, i++){){
//where i i the indices of planes
//some codes for computing length, width
planes->at(i).push_back(lenght);
planes->at(i).push_back(width);
}
Run Code Online (Sandbox Code Playgroud)
它工作,我得到了我添加的所有值的打印.然后,我改变了新的矢量定义部分如下
vector<vector<double> > *planes =
new vector<vector<double> >(s_list->size(),vector<double>(2,0.0))
Run Code Online (Sandbox Code Playgroud)
并删除调整大小部分.然后,当我从矢量矢量打印出来时,我得到0值.你能否解决这个问题.