Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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++ 如何在c++;_C++_Algorithm_C++11_Std Pair - Fatal编程技术网

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;
}