Skip to content

Commit cbd3dfc

Browse files
committed
linalg : swap_elelemtsに例を追加 (#1233)
Signed-off-by: Yuya Asano <64895419+sukeya@users.noreply.github.com>
1 parent ab8a6b1 commit cbd3dfc

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

reference/linalg/swap_elements.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,71 @@ namespace std::linalg {
5757
5858
5959
## 例
60+
**[注意] 処理系にあるコンパイラで確認していないため、間違っているかもしれません。**
61+
62+
```cpp example
63+
#include <cmath>
64+
#include <execution>
65+
#include <iostream>
66+
#include <linalg>
67+
#include <mdspan>
68+
#include <vector>
69+
70+
71+
template <class Vector>
72+
void print(Vector v) {
73+
for (int i = 0; i < v.extent(0) - 1; ++i) {
74+
std::cout << v[i] << ", ";
75+
}
76+
std::cout << v[v.extent(0) - 1] << std::endl;
77+
}
78+
79+
80+
int main()
81+
{
82+
constexpr size_t N = 3;
83+
84+
std::vector<double> a_vec({1, 2, 3});
85+
std::mdspan a(a_vec.data(), N);
86+
87+
std::vector<double> b_vec({4, 5, 6});
88+
std::mdspan b(b_vec.data(), N);
89+
90+
// (1)
91+
std::linalg::swap_elements(a, b);
92+
std::cout << "(1)\n";
93+
std::cout << "a\n";
94+
print(a);
95+
std::cout << "b\n";
96+
print(b);
97+
98+
// (2)
99+
std::linalg::swap_elements(std::execution::par, a, b);
100+
std::cout << "(2)\n";
101+
std::cout << "a\n";
102+
print(a);
103+
std::cout << "b\n";
104+
print(b);
105+
106+
return 0;
107+
}
108+
```
109+
* std::linalg::copy[color ff0000]
60110

61111

62112
### 出力
113+
```
114+
(1)
115+
a
116+
4, 5, 6
117+
b
118+
1, 2, 3
119+
(2)
120+
a
121+
1, 2, 3
122+
b
123+
4, 5, 6
124+
```
63125

64126

65127
## バージョン

0 commit comments

Comments
 (0)