C++ 如何在c++;
我试图成对打印元素,但它抛出了一个错误:“没有匹配的函数调用”C++ 如何在c++;,c++,algorithm,c++11,std-pair,C++,Algorithm,C++11,Std Pair,我试图成对打印元素,但它抛出了一个错误:“没有匹配的函数调用” 代码: #包括 #包括 使用名称空间std; int main() { 配对; pairVec=配对(1,“一”); pairVec=配对(2,“两”); pairVec=配对(3,“三”); 用于(自动iter:pairVec) { std::cout您根本没有生成向量。您可能想这样做: int main() { std::vector<pair<int, string>> pairVec; /
代码:
#包括
#包括
使用名称空间std;
int main()
{
配对;
pairVec=配对(1,“一”);
pairVec=配对(2,“两”);
pairVec=配对(3,“三”);
用于(自动iter:pairVec)
{
std::cout您根本没有生成向量。您可能想这样做:
int main()
{
std::vector<pair<int, string>> pairVec; // create a vector of pairs
pairVec.emplace_back(1, "One"); // adding pairs to the vector
pairVec.emplace_back(2, "Two");
pairVec.emplace_back(3, "Three");
for (auto iter : pairVec) {
std::cout << "First: " << iter.first << ", Second: "
<< iter.second << std::endl;
}
return 0;
}
intmain()
{
std::vector pairVec;//创建成对向量
pairVec.emplace_back(1,“一”);//向向量添加对
pairVec.后侵位(2,“2”);
pairVec.安置(3,“三”);
用于(自动iter:pairVec){
std::您是否正在覆盖pairVec
。提示:这是一对向量,而不是对的向量。您希望看到打印的元素有多少?iter
的类型是什么?请尝试自己填写该类型,而不要编写auto
。代码的预期行为是什么?谢谢您的提示我提到向量了吗?我只需要在向量对上迭代并打印elements@DheerajN我提到过向量吗?是的,你提到过很多。为什么你要#include
?为什么你要调用变量pairVec
?@Blaze它工作得很好!但是当我提到迭代器的类型而不是auto:std::vector::cons时t_iterator it,正则for循环使用它。begin…,它抛出错误“has no member named'first'”@DheerajN,这是因为该正则循环中的定义不同于使用基于范围的for循环定义的auto
(至少在MSVC中,这是相当笨拙的)但是如果你把“iter.first”改为iter->first
,同样地,把iter.second
也改为std::pair
,这就行了。std::pair
的目的是对右边的元素进行排序(std::pair.second
)。你会如何改变顺序,比如用std::vector替换元素std::vector?干杯
int main()
{
std::vector<pair<int, string>> pairVec; // create a vector of pairs
pairVec.emplace_back(1, "One"); // adding pairs to the vector
pairVec.emplace_back(2, "Two");
pairVec.emplace_back(3, "Three");
for (auto iter : pairVec) {
std::cout << "First: " << iter.first << ", Second: "
<< iter.second << std::endl;
}
return 0;
}