次のプログラムを検討してください。基本的に私はstruct
という名前のPersonを持っています。デフォルトではname="NO NAME"
とage = 0
が含まれています。今度は最初に5 Person
を追加するベクトルを作成します。 forループがちょうど5サイズのベクトルを終了した後、デバッガでも実行されました。デフォルトはPerson
です。しかし、私がそれを印刷しようとすると、何かがうまくいかない。構造体をベクトルに渡すと、ベクトルを出力すると奇妙な結果が得られます
私は何も変更していないので、最初にconst
ベクターを渡します。 printf
を使用して、私はこれを行います:list_of_persons.at(i).name, list_of_persons.at(i).age
、人の名前と年齢をプリントアウトするだけです。デフォルト値を変更していないので、NO NAME
と0
となるはずですが、私のcmdは私に何か別の方法を与えてくれます。
// Example program
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main();
struct Person {
string name = "NO NAME";
int age = 0;
};
void print_vector(const vector <Person> &);
int main()
{
vector<Person> list_of_persons;
for (unsigned int i = 0; i < 5; i++)
{
struct Person p;
list_of_persons.push_back(p);
}
print_vector(list_of_persons);
printf("\n");
system("pause");
return 0;
}
void print_vector(const vector<Person>& list_of_persons)
{
for (unsigned int i = 0; i < list_of_persons.size(); i++)
{
printf("Person %d \n", i);
printf("Name: %s\nAge: %d \n \n", list_of_persons.at(i).name, list_of_persons.at(i).age);
}
}
を使用してCおよびC++は_different languages_です! – ForceBru