行列、文字列、ポインタ、参照#2
参照変数変数の別名のように使用できます. 宣言では初期化が必要です. 初期化時に文字が聞こえない(例えば104).
仏家: 定数は参照変数として使用できません. 参照変数の変更時に元の値を変更する例
10 10
参照とconst2 この時の値も住所もあります. 参照値を関数パラメータの例として使用関数では、引数の値を変更することはできませんが、値に渡したくない場合はconstリファレンスを渡したほうがいいです. const参照は、変数が参照によって変更されることを許さない参照である. したがって、const参照をパラメータとして使用すると、呼び出し元保証関数にパラメータは変更されません.
1
4
12
ポインタと参照のメンバーの選択
構造体またはクラスに対してポインタおよび参照を使用する場合、ポインタおよび参照によって構造体またはクラスのメンバーにアクセスできます. 例
C++11 For-各繰り返し文
動的に配列を割り当てる場合、for-each文は を使用できません.であるが、キャリアは であることができる.
例
0 10 10 20 30 50 80 130 210 340 550 890
890最初は配列内のすべての数字を10に変更しようとしましたが、配列を参照するのではなく、再コピーすることで配列を変更するので、出力時に元のメモリ内のFibonacci配列が出力されます. 2番目のは、Fibonacci配列のメモリアドレスを参照して値を変更するため、10倍の数字が現れる. 第第3は最大値を求めるライブラリを用いた.(algorithm max) サウンドポインタアドレスは 保存されています.がどんなタイプなのか分からないので引用できません. を再インポートするには、 を強制的に選択する必要があります.
例デュアルポインタ の使用方法をしない方法 例
0x7ffeefbff3d4 5 0x7ffeefbff3e0
0x7ffeefbff3e0 0x7ffeefbff3d4 0x7ffeefbff3d8
5
2 Dマトリクスの実装例 git chap6_19 main.cpp 参照
std::arrayの概要
使用例ダイナミックアレイ 自動消去メモリ 使用例
int &ref = value
仏家:
int &ref = 10
const int x = 5;
const int &ref2 = x;
#include <iostream>
int main()
{
using namespace std;
int value1(5), value2(10);
int &ref1(value1);
cout << ref1 << endl;
ref1 = value2;
cout << ref1 << " " << value1 << endl;
return 0;
}
510 10
参照とconst
const
を使用して参照変数を宣言すると、テキストとして宣言できます.const int &ref_x = 3 + 4;
void doSomething(const int &x)
{
cout << x << endl;
}
int main()
{
int a = 1;
doSomething(a);
doSomething(1);
doSomething(a + 3);
doSomething(3 * 4);
return 0;
}
11
4
12
ポインタと参照のメンバーの選択
構造体またはクラスに対して
struct Person
{
int age;
double weight;
};
int main()
{
Person person;
person.age = 5;
person.weight = 30;
Person &ref = person;
ref.age = 15;
ref.weight = 35;
Person *ptr = &person;
ptr->age = 30;
(*ptr).weight = 50;
Person &ref2 = *ptr;
ref.age = 45;
std::cout << &person << std::endl;
std::cout << &ref2 << std::endl;
return 0;
}
同じメモリアドレスを出力します.C++11 For-各繰り返し文
動的に
例
int main()
{
int fibonacci[] = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 };
//change array values =
for(int number : fibonacci)
number = 10;
// output
for(int number : fibonacci)
cout << number << " ";
cout << endl;
//change array values
for(auto &number : fibonacci)
number *= 10;
// output
for(const auto &number : fibonacci)
cout << number << " ";
cout << endl;
int max_number = 0;
for(const auto &n : fibonacci)
max_number = std::max(max_number, n);
cout << max_number << endl;
return 0;
}
0 1 1 2 3 5 8 13 21 34 55 890 10 10 20 30 50 80 130 210 340 550 890
890
例
enum Type
{
INT,
FLOAT,
CHAR,
};
int main()
{
int i = 5;
float f = 3.0;
char c = 'a';
void *ptr = nullptr;
ptr = &c;
ptr = &i;
ptr = &f;
Type type = FLOAT;
cout << &f << " " << ptr << endl;
if(type == FLOAT)
cout << *static_cast<float*>(ptr) << endl;
else if(type == INT)
cout << *static_cast<int*>(ptr) << endl;
return 0;
}
マルチポインタ動的多次元配列int main() {
using namespace std;
int *ptr = nullptr;
int **ptrptr = nullptr;
int value = 5;
ptr = &value;
ptrptr = &ptr;
cout << ptr << " " << *ptr << " " << &ptr << endl;
cout << ptrptr << " " << *ptrptr << " " << &ptrptr << endl;
cout << **ptrptr << endl;
return 0;
}
-住所確認-0x7ffeefbff3d4 5 0x7ffeefbff3e0
0x7ffeefbff3e0 0x7ffeefbff3d4 0x7ffeefbff3d8
5
2 Dマトリクスの実装例
std::arrayの概要
使用例
#include <iostream>
#include <array>
using namespace std;
void printLength(const std::array<int, 5>& my_arr)
{
cout << my_arr.size() << endl;
}
int main()
{
//int array[] = { 1, 2, 3, 4, 5 };
std::array<int, 5> my_arr = { 1, 2, 3, 4, 5 };
//갯수가 적어도는 되지만 많으면 안됨
my_arr = { 0, 1, 2, 3, 4};
my_arr = { 0, 1, 2 };
cout << my_arr[0] << endl;
cout << my_arr.at(0) << endl;
printLength(my_arr);
return 0;
}
ソート・アルゴリズムの使用例#include <iostream>
#include <array>
#include <algorithm>
using namespace std;
void printLength(const std::array<int, 5>& my_arr)
{
for (auto &element : my_arr)
cout << element << " ";
cout << endl;
}
int main()
{
//int array[] = { 1, 2, 3, 4, 5 };
std::array<int, 5> my_arr = { 21, 2, 312, 40, 5 };
printLength(my_arr);
std::sort(my_arr.begin(), my_arr.end());
printLength(my_arr);
std::sort(my_arr.rbegin(), my_arr.rend());
printLength(my_arr);
return 0;
}
紹介する#include <iostream>
#include <vector>
int main()
{
using namespace std;
// std::array<int, 5> array;
std::vector<int> array;
std::vector<int> array2 = { 1, 2, 3, 4, 5 };
cout << array2.size() << endl;
std::vector<int> array3 = { 1, 2, 3, };
cout << array3.size() << endl;
// uniform initialization
std::vector<int> array4 { 1, 2, 3, };
cout << array4.size() << endl;
vector<int> arr = {1 ,2, 3, 4, 5 };
arr.resize(10);
for(auto &itr : arr)
cout << itr << " ";
cout << endl;
cout << arr[1] << endl;
cout << arr.at(1) << endl;
return 0;
}
Reference
この問題について(行列、文字列、ポインタ、参照#2), 我々は、より多くの情報をここで見つけました https://velog.io/@velmash/cppchap6-2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol