Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.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++ 从元组列表中访问单个元组的元素 #包括 #包括 #包括 #包括 使用名称空间std; int main() { 列出XYZ_Widget_商店; 河流充填; infile.open(“data.text”); char x;//S,P,R 双a,b; 对于(;infle>>x>>a>>b;){ XYZ_Widget_Store.push_back(生成元组(x,a,b)); } infle.close(); 对于(list::iterator it=XYZ_Widget_Store.begin();它= XYZ_Widget_Store.end();++it){ cout_C++_List_Stl_Tuples - Fatal编程技术网

C++ 从元组列表中访问单个元组的元素 #包括 #包括 #包括 #包括 使用名称空间std; int main() { 列出XYZ_Widget_商店; 河流充填; infile.open(“data.text”); char x;//S,P,R 双a,b; 对于(;infle>>x>>a>>b;){ XYZ_Widget_Store.push_back(生成元组(x,a,b)); } infle.close(); 对于(list::iterator it=XYZ_Widget_Store.begin();它= XYZ_Widget_Store.end();++it){ cout

C++ 从元组列表中访问单个元组的元素 #包括 #包括 #包括 #包括 使用名称空间std; int main() { 列出XYZ_Widget_商店; 河流充填; infile.open(“data.text”); char x;//S,P,R 双a,b; 对于(;infle>>x>>a>>b;){ XYZ_Widget_Store.push_back(生成元组(x,a,b)); } infle.close(); 对于(list::iterator it=XYZ_Widget_Store.begin();它= XYZ_Widget_Store.end();++it){ cout,c++,list,stl,tuples,C++,List,Stl,Tuples,您需要使用get(*it)来获取第一个元素,因为it是指向tuple的指针。因此,for循环中的语句应该是: #include <iostream> #include <fstream> #include <list> #include <tuple> using namespace std; int main() { list<tuple<char,double,double>> XYZ_Widget_Stor

您需要使用
get(*it)
来获取第一个元素,因为
it
是指向tuple的指针。因此,
for
循环中的语句应该是:

#include <iostream>
#include <fstream>
#include <list>
#include <tuple>

using namespace std;

int main()
{
    list<tuple<char,double,double>> XYZ_Widget_Store;

    ifstream infile;
    infile.open("data.text");

    char x; // S, P, R
    double a,b; 

    for(;infile >> x >> a >> b;){
        XYZ_Widget_Store.push_back(make_tuple(x,a,b));
    }

    infile.close();

    for(list<int>::iterator it = XYZ_Widget_Store.begin(); it !=
      XYZ_Widget_Store.end(); ++it){
        cout << *it.get<0> << endl;
    }
    return 0;
}

cout如果你打算使用C++11,你还可以使用其他优秀的功能,如
auto
和for-each循环。下面是你如何为
循环重新编写最后一个

cout << get<0>(*it) << endl;
for(自动&tup:XYZ\u小部件存储){

cout如果
it
是一个
list::iterator
,那么
*it
将为您提供类型为
T
的对应对象。因此,您需要使用
get(*it)
来访问相应的元组元素。在
for
循环中还有另一个错误:而不是

for (auto& tup : XYZ_Widget_Store) {
    cout << get<0>(tup) << endl;
}

您的第一个
for
循环在
时没有编写为
的原因是什么?谢谢,我实际上不熟悉该功能
list<int>::iterator it = XYZ_Widget_Store.begin()
list<tuple<char,double,double>>::iterator it = XYZ_Widget_Store.begin().
auto it = XYZ_Widget_Store.begin()