Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit c0d6f04

Browse files
Update consolidated snippets
1 parent 3a99176 commit c0d6f04

File tree

1 file changed

+107
-1
lines changed

1 file changed

+107
-1
lines changed

‎public/consolidated/cpp.json

Lines changed: 107 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,33 @@
11
[
2+
{
3+
"categoryName": "Array Manipulation",
4+
"snippets": [
5+
{
6+
"title": "Filter Vector",
7+
"description": "Filters a vector using a predicate function.",
8+
"author": "majvax",
9+
"tags": [
10+
"array",
11+
"filter",
12+
"c++23"
13+
],
14+
"contributors": [],
15+
"code": "#include <ranges>\n#include <vector>\n\ntemplate <typename T, typename P>\nauto filter(const std::vector<T>& vec, P&& predicate) {\n return vec\n | std::views::filter(std::forward<P>(predicate))\n | std::ranges::to<std::vector<T>>();\n}\n\n\n\n// Usage:\nstd::vector<int> vec = {1, 2, 3, 4, 5};\nstd::vector<int> filtered = filter(vec, [](int i){ return i % 2 == 0; });\n// filtered contains 2 and 4\n"
16+
},
17+
{
18+
"title": "Transform Vector",
19+
"description": "Transforms a vector using a function.",
20+
"author": "majvax",
21+
"tags": [
22+
"array",
23+
"transform",
24+
"c++23"
25+
],
26+
"contributors": [],
27+
"code": "#include <ranges>\n#include <vector>\n\ntemplate <typename T, typename F>\nauto transform(const std::vector<T>& vec, F&& transformer) {\n using U = std::invoke_result_t<F, T>;\n return vec\n | std::views::transform(std::forward<F>(transformer))\n | std::ranges::to<std::vector<U>>();\n}\n\n\n\n// Usage:\nstd::vector<int> vec = {1, 2, 3, 4, 5};\nstd::vector<int> transformed = transform(vec, [](int i){ return i * 2; });\n// transformed contains 2, 4, 6, 8, 10\n"
28+
}
29+
]
30+
},
231
{
332
"categoryName": "Basics",
433
"snippets": [
@@ -32,6 +61,47 @@
3261
}
3362
]
3463
},
64+
{
65+
"categoryName": "File Handling",
66+
"snippets": [
67+
{
68+
"title": "Find files recursively",
69+
"description": "Find all the files in a directory and subdirectories using a predicate function.",
70+
"author": "majvax",
71+
"tags": [
72+
"filesystem",
73+
"file_search",
74+
"c++17"
75+
],
76+
"contributors": [],
77+
"code": "#include <filesystem>\n#include <vector>\n#include <string>\n\ntemplate <typename P>\nstd::vector<std::filesystem::path> find_files_recursive(const std::string& path, P&& predicate) {\n std::vector<std::filesystem::path> files;\n std::error_code ec;\n\n if (!std::filesystem::exists(path, ec) || ec)\n return files;\n if (!std::filesystem::is_directory(path, ec) || ec)\n return files;\n\n auto it = std::filesystem::recursive_directory_iterator(path, ec);\n if (ec)\n return files;\n\n for (const auto& entry : it)\n if (!std::filesystem::is_directory(entry) && predicate(entry.path()))\n files.push_back(entry.path());\n\n return files;\n}\n\n\n\n// Usage:\n\n// Find all files with size greater than 10MB\nauto files = find_files_recursive(\"Path\", [](const auto& p) {\n return std::filesystem::file_size(p) > 10 * 1024 * 1024;\n});\n\n// Find all files with \".pdf\" as extension\nauto files = find_files_recursive(\"Path\", [](const auto& p) {\n return p.extension() == \".pdf\";\n});\n\n// Find all files writed after The New Year\n#include <chrono>\n// need std=c++20\nauto jan_1_2025 = std::filesystem::file_time_type::clock::from_sys(\n std::chrono::sys_days{std::chrono::year{2025}/std::chrono::month{1}/std::chrono::day{1}}\n);\nauto files = find_files_recursive(\"Path\", [jan_1_2025](const auto& p) {\n return std::filesystem::last_write_time(p) > jan_1_2025;\n}),\n"
78+
},
79+
{
80+
"title": "Find files",
81+
"description": "Find all the files in a directory using a predicate function.",
82+
"author": "majvax",
83+
"tags": [
84+
"filesystem",
85+
"file_search",
86+
"c++17"
87+
],
88+
"contributors": [],
89+
"code": "#include <filesystem>\n#include <vector>\n#include <string>\n\ntemplate <typename P>\nstd::vector<std::filesystem::path> find_files(const std::string& path, P&& predicate) {\n std::vector<std::filesystem::path> files;\n std::error_code ec;\n\n if (!std::filesystem::exists(path, ec) || ec)\n return files;\n if (!std::filesystem::is_directory(path, ec) || ec)\n return files;\n\n auto it = std::filesystem::directory_iterator(path, ec);\n if (ec)\n return files;\n\n for (const auto& entry : it)\n if (!std::filesystem::is_directory(entry) && predicate(entry.path()))\n files.push_back(entry.path());\n\n return files;\n}\n\n\n\n// Usage:\n\n// Find all files with size greater than 10MB\nauto files = find_files(\"Path\", [](const auto& p) {\n return std::filesystem::file_size(p) > 10 * 1024 * 1024;\n});\n\n// Find all files with \".pdf\" as extension\nauto files = find_files(\"Path\", [](const auto& p) {\n return p.extension() == \".pdf\";\n});\n\n// Find all files writed after The New Year\n#include <chrono>\n// need std=c++20\nauto jan_1_2025 = std::filesystem::file_time_type::clock::from_sys(\n std::chrono::sys_days{std::chrono::year{2025}/std::chrono::month{1}/std::chrono::day{1}}\n);\nauto files = find_files(\"Path\", [jan_1_2025](const auto& p) {\n return std::filesystem::last_write_time(p) > jan_1_2025;\n}),\n"
90+
},
91+
{
92+
"title": "List Directories",
93+
"description": "Lists all the directories in a path.",
94+
"author": "majvax",
95+
"tags": [
96+
"filesystem",
97+
"directories",
98+
"c++17"
99+
],
100+
"contributors": [],
101+
"code": "#include <filesystem>\n#include <vector>\n#include <string>\n\nstd::vector<std::filesystem::path> list_directories(const std::string& path) {\n std::vector<std::filesystem::path> files;\n std::error_code ec;\n\n if (!std::filesystem::exists(path, ec) || ec)\n return files;\n if (!std::filesystem::is_directory(path, ec) || ec)\n return files;\n\n auto it = std::filesystem::directory_iterator(path, ec);\n if (ec)\n return files;\n\n for (const auto& entry : it)\n if (std::filesystem::is_directory(entry))\n files.push_back(entry.path());\n\n return files;\n}\n\n\n\n// Usage:\nauto directories = list_directories(\"Path\");\n"
102+
}
103+
]
104+
},
35105
{
36106
"categoryName": "Math And Numbers",
37107
"snippets": [
@@ -51,13 +121,37 @@
51121
{
52122
"categoryName": "String Manipulation",
53123
"snippets": [
124+
{
125+
"title": "Filter",
126+
"description": "Filter a string with a predicate function",
127+
"author": "majvax",
128+
"tags": [
129+
"string",
130+
"filtering",
131+
"c++23"
132+
],
133+
"contributors": [],
134+
"code": "#include <ranges>\n#include <string>\n\ntemplate <typename P>\nstd::string filter(const std::string& str, P&& predicate) {\n return str\n | std::ranges::views::filter(std::forward<P>(predicate))\n | std::ranges::to<std::string>();\n}\n\n\n\n// Usage:\nstd::string str = \"Hello, World!\";\nstd::string filtered = filter(str, [](char c){ return std::isalpha(c); });\nstd::cout << filtered << std::endl; // HelloWorld\n"
135+
},
136+
{
137+
"title": "Palindrome",
138+
"description": "Check if a string is a palindrome or not.",
139+
"author": "majvax",
140+
"tags": [
141+
"string",
142+
"c++23"
143+
],
144+
"contributors": [],
145+
"code": "#include <string>\n#include <ranges>\n#include <algorithm>\n\nbool is_palindrome(const std::string& str) {\n std::string sanitized_string = str\n | std::ranges::views::filter([](char c){ return std::isalnum(c); })\n | std::ranges::views::transform([](char c){ return std::tolower(c); })\n | std::ranges::to<std::string>();\n \n return std::ranges::equal(sanitized_string, sanitized_string | std::views::reverse);\n}\n\n\n\n// Usage:\nbool pal = is_palindrome(\"A man, a plan, a canal, Panama\"); // true\n"
146+
},
54147
{
55148
"title": "Reverse String",
56149
"description": "Reverses the characters in a string.",
57150
"author": "Vaibhav-kesarwani",
58151
"tags": [
59152
"array",
60-
"reverse"
153+
"reverse",
154+
"c++23"
61155
],
62156
"contributors": [],
63157
"code": "#include <string>\n#include <algorithm>\n\nstd::string reverseString(const std::string& input) {\n std::string reversed = input;\n std::reverse(reversed.begin(), reversed.end());\n return reversed;\n}\n\nreverseString(\"quicksnip\"); // Returns: \"pinskciuq\"\n"
@@ -72,6 +166,18 @@
72166
],
73167
"contributors": [],
74168
"code": "#include <string>\n#include <vector>\n\nstd::vector<std::string> split_string(std::string str, std::string delim) {\n std::vector<std::string> splits;\n int i = 0, j;\n int inc = delim.length();\n while (j != std::string::npos) {\n j = str.find(delim, i);\n splits.push_back(str.substr(i, j - i));\n i = j + inc;\n }\n return splits;\n}\n\n// Usage:\nsplit_string(\"quick_-snip\", \"_-\"); // Returns: std::vector<std::string> { \"quick\", \"snip\" }\n"
169+
},
170+
{
171+
"title": "Transform",
172+
"description": "Transform a string with a function",
173+
"author": "majvax",
174+
"tags": [
175+
"string",
176+
"transform",
177+
"c++23"
178+
],
179+
"contributors": [],
180+
"code": "#include <ranges>\n#include <string>\n\ntemplate <typename F>\nstd::string transform(const std::string& str, F&& transformer) {\n return str\n | std::ranges::views::transform(std::forward<F>(transformer))\n | std::ranges::to<std::string>();\n}\n\n\n\n// Usage:\nstd::string str = \"Hello, World!\";\nstd::string transformed = transform(str, [](char c){ return std::toupper(c); });\nstd::cout << transformed << std::endl; // HELLO, WORLD!\n"
75181
}
76182
]
77183
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /