Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何获取点向量并仅获取';y';这些要点_C++_Vector - Fatal编程技术网

C++ 如何获取点向量并仅获取';y';这些要点

C++ 如何获取点向量并仅获取';y';这些要点,c++,vector,C++,Vector,不幸的是,我的数学能力和objective-c/c/c++还没有发展到足以理解如何做到这一点 我有一个向量设置如下: [2,2,3,3,4,4,5,5,6,6]begin();我!=dp->end()++(一){ /*这里只抓取y点代码*/ } 现在我想为语句编写一种,它接受xGraph.GraphPoints并只获取y坐标。 而且。。。我想把它放到另一个只有y坐标的向量中,在代码完成后看起来像[2,3,4,5,6] 有人能帮我吗 干杯vector::iterator i; 向量*dp=xGr

不幸的是,我的数学能力和objective-c/c/c++还没有发展到足以理解如何做到这一点

我有一个向量设置如下: [2,2,3,3,4,4,5,5,6,6]begin();我!=dp->end()++(一){ /*这里只抓取y点代码*/ } 现在我想为语句编写一种,它接受xGraph.GraphPoints并只获取y坐标。 而且。。。我想把它放到另一个只有y坐标的向量中,在代码完成后看起来像[2,3,4,5,6]

有人能帮我吗

干杯

vector::iterator i;
向量*dp=xGraph.GraphPoints;
向量dp=yPoints;
对于(i=dp->begin();i!=dp->end();+i){
点。向后推_(i->y);
}
向量在内存中确实是这样排列的,但不是逻辑上的。不要想得太多。它仍然是
CGFloat
对象的向量。

向量::迭代器i;
向量*dp=xGraph.GraphPoints;
向量dp=yPoints;
对于(i=dp->begin();i!=dp->end();+i){
点。向后推_(i->y);
}

向量在内存中确实是这样排列的,但不是逻辑上的。不要想得太多。它仍然是一个
CGFloat
对象的向量。

你的向量不是像[2,2,3,3,4,4,5,5,6,6]那样设置的。它是这样设置的:[(2,2),(3,3),(4,4),(5,5),(6,6)]。也就是说,它是一组成对的数字,而不仅仅是一组数字。要获得向量中每个元素的
y
分量,可以编写如下循环:

vector<CGPoint>* dp = xGraph.GraphPoints;
for(i = dp->begin(); i != dp->end(); ++i){
    /* grab y points only code here*/
    CGFloat current_y = i->y;
}
vector*dp=xGraph.GraphPoints;
对于(i=dp->begin();i!=dp->end();+i){
/*这里只抓取y点代码*/
CGFloat电流_y=i->y;
}

向量的设置与[2,2,3,3,4,4,5,5,6,6]不同。它是这样设置的:[(2,2),(3,3),(4,4),(5,5),(6,6)]。也就是说,它是一组成对的数字,而不仅仅是一组数字。要获得向量中每个元素的
y
分量,可以编写如下循环:

vector<CGPoint>* dp = xGraph.GraphPoints;
for(i = dp->begin(); i != dp->end(); ++i){
    /* grab y points only code here*/
    CGFloat current_y = i->y;
}
vector*dp=xGraph.GraphPoints;
对于(i=dp->begin();i!=dp->end();+i){
/*这里只抓取y点代码*/
CGFloat电流_y=i->y;
}

好的,我对你的问题的解释是,你有一个包含
CGPoint
对象的向量,你只想从所有点提取
y
坐标。在这种情况下,您需要(使用C++11 lambdas):

或函子:

struct extractYfunctor {
   CGFloat operator()( CGPoint const & p ) const {
      return p.y;
   }
};
std::transform( dp->begin(), dp->end(), std::back_inserter( ycoord ), 
                extractYfuctor() );
如果可以使用boost库:

std::transform( dp->begin(), dp->end(), std::back_inserter( ycoord ),
                boost::bind( &CGPoint::y, _1 ) );
或使用普通循环:

for ( std::vector< CGPoint >::const_iterator it = dp->begin(); it != dp->end(); ++it ) {
   ycoord.push_back( it->y );
}
for(std::vector::const_迭代器it=dp->begin();it!=dp->end();+it){
ycoord.push_back(it->y);
}

好的,我对你的问题的解释是,你有一个包含
CGPoint
对象的向量,你只想从所有点提取
y
坐标。在这种情况下,您需要(使用C++11 lambdas):

或函子:

struct extractYfunctor {
   CGFloat operator()( CGPoint const & p ) const {
      return p.y;
   }
};
std::transform( dp->begin(), dp->end(), std::back_inserter( ycoord ), 
                extractYfuctor() );
如果可以使用boost库:

std::transform( dp->begin(), dp->end(), std::back_inserter( ycoord ),
                boost::bind( &CGPoint::y, _1 ) );
或使用普通循环:

for ( std::vector< CGPoint >::const_iterator it = dp->begin(); it != dp->end(); ++it ) {
   ycoord.push_back( it->y );
}
for(std::vector::const_迭代器it=dp->begin();it!=dp->end();+it){
ycoord.push_back(it->y);
}


<代码>如果你有一个向量,那么你就使用C++,而不是ObjuleC或C。你确定你没有使用C++吗?你所显示的代码不是C。你想翻译吗?你的正确。我正在构建一个ipad应用程序,使用所有3个。固定itj++;如果(!(j%2))y.push(dp[i])@我已经移除了[Objective-C]和[C]标签。在应用程序的其他部分中使用它是否真的影响了这个特殊的问题是C++。如果你有一个向量,那么你就使用C++,而不是ObjuleC或C。你确定你没有使用C++吗?你所显示的代码不是C。你想翻译吗?你的正确。我正在构建一个ipad应用程序,使用所有3个。固定itj++;如果(!(j%2))y.push(dp[i])@我已经移除了[Objective-C]和[C]标签。无论你在你的应用程序的其他部分使用它,都不会真正影响这个特殊的问题是C++。我的头上会有什么要点?我不知道你在做什么。code>将它放入另一个只包含y坐标的向量中…
听起来像是一个临时变量,它不属于标题。它应该是函数的局部。啊,我明白了。正如我在第一行中所说,我的编程技能不是很先进。我的标题中的yPoints是什么?我不知道你在做什么
将它放入另一个只包含y坐标的向量中…
听起来像是一个临时变量,它不属于标题。它应该是函数的局部。啊,我明白了。正如我在第一行中所说,我的编程技能不是很先进。这会使当前_y成为向量吗?我会去读关于CGFloat的书,因为我不懂这行。这会让current_y成为向量吗?因为我不理解这一行,所以我会去读关于CGFloat的书。只把y坐标提取到另一个向量中。但除此之外,你的解释是正确的。让我再看一下你的代码。你能解释一下普通循环中的it->y吗?哦,别介意把你推回去。我让它只提取y坐标到另一个向量中。但除此之外,你的解释是正确的。让我再看一下你的代码。你能解释一下普通循环中的it->y吗?哦,别介意把你推回去。我得到了它