C++ 打印C+中多个向量的第一个值+;
我试图打印主函数中显示的每个向量的第一个值C++ 打印C+中多个向量的第一个值+;,c++,vector,C++,Vector,我试图打印主函数中显示的每个向量的第一个值 #include <iomanip> #include <map> using namespace std; typedef unsigned int vect; int main() { std::vector<vect> p; vector<vect> a = { 4,2,3,1 }; vector<vect> b = { 4,2,3,1 }; ve
#include <iomanip>
#include <map>
using namespace std;
typedef unsigned int vect;
int main() {
std::vector<vect> p;
vector<vect> a = { 4,2,3,1 };
vector<vect> b = { 4,2,3,1 };
vector<vect> c = { 4,2,3,1 };
vector<vect> d = { 4,2,3,1 };
int i;
for (i=0; i<a.size(); i++)
cout << a[i];
}
#包括
#包括
使用名称空间std;
typedef无符号整数向量;
int main(){
std::向量p;
向量a={4,2,3,1};
向量b={4,2,3,1};
向量c={4,2,3,1};
向量d={4,2,3,1};
int i;
对于(i=0;i
我想从main()
调用函数first\u preference()
,函数应该在这里打印每个向量的第一个值
一些问题:
- 您的头文件中有一个全局
std::vector p
(这不是一个好主意)它被main
中的std::vector p
隐藏。您在main
中的p
中输入的内容将无法从test
的实例访问。这些实例只知道全局p
- 您没有在
main.cpp
中包含“function.h”
,因此无法在main
中创建test
对象
main.cpp
中包含“function.h”,则无需typedef unsigned int vect;
,因为您已经在function.h
中这样做了。这不是一个错误,而是混淆和不必要的vector
实例a、b、c
和d
与test
或任何p
都没有任何联系,因此您在这些向量中输入的内容不可能由test
实例打印,除非您以某种方式将它们传递给test
vect
的向量,但first_preference()
按值返回person
。vect
和person
恰好是相同基本类型的别名,但此接口似乎有问题main.cpp
中,您不实例化测试
,而是迭代a
,并且从未调用first_preference()
,因此不希望使用它main()
调用函数first\u preference()
,函数应该在这里打印每个向量的第一个值
一些问题:
- 您的头文件中有一个全局
(这不是一个好主意)它被std::vector p
中的main
隐藏。您在std::vector p
中的main
中输入的内容将无法从p
的实例访问。这些实例只知道全局test
p
- 您没有在
中包含“function.h”,因此无法在main.cpp
中创建main
对象test
- 如果您在
中包含“function.h”,则无需main.cpp
,因为您已经在typedef unsigned int vect;
中这样做了。这不是一个错误,而是混淆和不必要的function.h
实例vector
和a、b、c
与d
或任何test
都没有任何联系,因此您在这些向量中输入的内容不可能由p
实例打印,除非您以某种方式将它们传递给test
test
- 声明
的向量,但vect
按值返回first_preference()
。person
和vect
恰好是相同基本类型的别名,但此接口似乎有问题person
- 在
中,您不实例化main.cpp
,而是迭代测试
,并且从未调用a
,因此不希望使用它first_preference()
投票::first_preference
是成员函数的地址,而不是对它的调用。函数如何调用?实例。成员函数(参数)
是一种方法。将您的代码变成一个,这样会更容易帮助。@TEDLYNMO我已经简化了问题,希望它会更容易帮助?我正在尝试按您建议的方式调用函数,但它不会使您过于简化。您的简化代码没有test
对象,因此test
的非静态成员无法使用调用。投票以键入方式关闭。&vote::first\u preference
是成员函数的地址,而不是对它的调用。函数如何调用?实例。成员函数(参数)
是一种方法。将您的代码变成一个,这样会更容易帮助。@TEDLYNMO我已经简化了问题,希望它会更容易帮助?我正在尝试按您建议的方式调用函数,但它不会使您过于简化。您的简化代码没有test
对象,因此test
的非静态成员无法使用打电话。
#include "function.h"
#include <string>
#include <iostream>
using namespace std;
person test::first_preference() const {
const person& first = p.front();
return first; //current first pref
}
#ifndef FUNCTION_H
#define FUCNTION_H
#include <vector>
typedef unsigned int person;
typedef unsigned int vect;
std::vector<vect> p;
class test {
public:
person first_preference() const;
};
#endif