调用函数时,如何通过向量返回类型
How do you pass a vectors return type when your calling a function?
我正在使用的IDE:code :: blocks 16.01 |编译器我正在使用:minggw gcc 6.3.0
标题:调用函数时如何通过向量返回类型?
问题:我试图通过使用pi.size()函数将名为pi的向量的大小作为打印函数中的参数,但给我一个错误消息。尝试了不同的方法来纠正它,但无济于事。
错误(S):
构建消息:v4- vectors main.cpp | 18 |错误:OFLOADED'print(std :: vector :: size_type)的呼叫'是模棱两可|
main.cpp
#include <iostream>
#include "../Library/mainLibrary.h"
#include <vector>
using namespace std;
int main()
{
vector<double> pi(5,3.14);
print(pi.size());
cout << pi.size() << endl;
cout << pi.capacity() << endl;
print(pi[0]);
return 0;
}
mainlibrary.h
#include <iostream>
#include <string>
using namespace std;
#ifndef MAINLIBRARY_H_INCLUDED
#define MAINLIBRARY_H_INCLUDED
void functionName(char input[], int status);
//Prints to screen using overloaded functions
void print(int input);
void print(int*& input);
void print(long input);
void print(double input);
void print(char input);
void print(const char* input);
void print(string input);
void print(string* input);
#endif // MAINLIBRARY_H_INCLUDED
mainlibrary.cpp
#include <iostream> //used for cin, cout
#include "mainLibrary.h"
#include <string> // used for string functions
#include <cstdlib> // used for system function calls
using namespace std;
int functionNameFlag = 0;
void functionName(char input[],int status)
{
if (functionNameFlag == 1 && status == 1)
{
cout << "n--------------------------------------------------------------------------------n";
cout << "Entering function : " << input << "n";
cout << "--------------------------------------------------------------------------------n";
}
if (functionNameFlag == 1 && status == 2)
{
cout << "n--------------------------------------------------------------------------------n";
cout << "Exiting function : " << input << "n";
cout << "--------------------------------------------------------------------------------n";
}
;
// functionName(currentFunctionName, 2);
}
void print(int input)
{
char currentFunctionName[] = "void print(int input)";
functionName(currentFunctionName, 1);
cout << input << endl;
functionName(currentFunctionName, 2);
}
void print(int*& input)
{
char currentFunctionName[] = "void print(int*& input)";
functionName(currentFunctionName, 1);
cout << input << endl;
functionName(currentFunctionName, 2);
}
void print(long input)
{
char currentFunctionName[] = "void print(long input)";
functionName(currentFunctionName, 1);
cout << input << endl;
functionName(currentFunctionName, 2);
}
void print(double input)
{
char currentFunctionName[] = "void print(double input)";
functionName(currentFunctionName, 1);
cout << input << endl;
functionName(currentFunctionName, 2);
}
void print(char input)
{
char currentFunctionName[] = "void print(char input)";
functionName(currentFunctionName, 1);
cout << input << endl;
functionName(currentFunctionName, 2);
}
void print(const char* input)
{
char currentFunctionName[] = "void print(const char* input)";
functionName(currentFunctionName, 1);
cout << input << endl;
functionName(currentFunctionName, 2);
}
void print(string input)
{
char currentFunctionName[] = "void print(string input)";
functionName(currentFunctionName, 1);
cout << input << endl;
functionName(currentFunctionName, 2);
}
void print(string* input)
{
char currentFunctionName[] = "void print(string* input)";
functionName(currentFunctionName, 1);
cout << input << endl;
functionName(currentFunctionName, 2);
}
您的程序不知道要调用哪个print()
函数,它可以调用print(int input)
或print(long input)
或...
为了帮助其决定,您可以从size()
施放结果:
print((int)pi.size());
请注意,如果size()
确实很大,那么将int
投射不足。您可能想将其施放到long
(感谢Jesper Juhl),或创建另一个print()
函数,该函数带有unsigned int
参数。
相关文章:
- 尝试通过多个向量访问变量时,向量下标超出范围
- 如何通过派生类函数更改基类中的向量
- 变量没有改变?通过向量的函数调用
- C++:如何循环通过向量中的整数元素
- 通过构造函数创建的所有对象都具有相同的向量
- 如何通过向量中的结构 id 获取索引号
- 如何通过向量构建数组
- 通过向量中的对象的数据成员迭代
- 我可以通过向量附加特征矩阵而不复制任何数据
- 如何通过向量迭代作为指针
- 通过向量迭代,而其他线程可能会对其进行修改
- 通过向量更改对象变量的值
- 调用函数时,如何通过向量返回类型
- 处理媒体循环循环循环通过向量中的对象的各个方面
- 如何通过向量/地图对对象使用多个指针
- 通过向量移动类对象
- 通过向量中的向量进行迭代
- 通过向量C++更改数组中元素的值<int>
- 在C++中,如何让两个类通过向量(map,multimap.)相互链接
- 通过向量迭代来识别段落