C 언어
C++에서 std::list는 저장소 컨테이너를 나타냅니다. std:list를 사용하면 어디에서나 항목을 삽입하고 제거할 수 있습니다. std::list는 이중 연결 목록으로 구현됩니다. 이는 목록 데이터에 양방향 및 순차적으로 액세스할 수 있음을 의미합니다.
표준 템플릿 라이브러리 목록은 빠른 랜덤 액세스를 지원하지 않지만 모든 방향에서 순차 액세스를 지원합니다.
다른 메모리 청크에 목록 요소를 분산할 수 있습니다. 데이터에 대한 순차 접근에 필요한 정보는 컨테이너에 저장됩니다. std::list는 런타임 중에 필요에 따라 양쪽 끝에서 확장 및 축소할 수 있습니다. 내부 할당자는 스토리지 요구 사항을 자동으로 충족합니다.
이 C++ 자습서에서는 다음을 배우게 됩니다.
다음은 std::List를 사용하는 이유입니다.
std::list를 정의하려면 헤더 파일을 가져와야 합니다. 다음은 std::list 정의 구문입니다.
template < class Type, class Alloc =allocator<T> > class list;
다음은 위의 매개변수에 대한 설명입니다.
사용자 정의 유형을 포함한 모든 데이터 유형으로 T를 대체할 수 있습니다.
기본적으로 할당자 클래스 템플릿을 사용합니다. 값 종속적이며 간단한 메모리 할당 모델을 사용합니다.
#include <algorithm> #include <iostream> #include <list> int main() { std::list<int> my_list = { 12, 5, 10, 9 }; for (int x : my_list) { std::cout << x << '\n'; } }
출력:
다음은 코드의 스크린샷입니다.
코드 설명:
일반적인 std::list 함수는 다음과 같습니다.
기능 설명 insert() 이 함수는 반복자가 가리키는 위치 앞에 새 항목을 삽입합니다.push_back() 이 함수는 목록의 end.push_front() 목록의 앞쪽에 새 항목을 추가합니다.pop_front() 목록의 항목을 삭제합니다. 첫 번째 item.size()이 함수는 목록 요소의 수를 결정합니다.front()To는 목록의 첫 번째 항목을 결정합니다.back()To는 목록의 마지막 항목을 결정합니다.reverse()목록 항목을 뒤집습니다. 정렬된 목록.
다음은 헤더 파일에서 제공하는 기능 목록입니다.
#include <iostream> #include <list> using namespace std; int main(void) { list<int> l; list<int> l1 = { 10, 20, 30 }; list<int> l2(l1.begin(), l1.end()); list<int> l3(move(l1)); cout << "Size of list l: " << l.size() << endl; cout << "List l2 contents: " << endl; for (auto it = l2.begin(); it != l2.end(); ++it) cout << *it << endl; cout << "List l3 contents: " << endl; for (auto it = l3.begin(); it != l3.end(); ++it) cout << *it << endl; return 0; }
출력:
다음은 코드의 스크린샷입니다.
코드 설명:
다음은 컨테이너 속성 목록입니다.
속성 설명 SequenceSequence 컨테이너는 요소를 엄격한 선형 순서로 정렬합니다. 요소는 시퀀스의 위치에 따라 액세스됩니다. 이중 연결 목록Every 요소에는 이전 및 다음 요소를 찾는 방법에 대한 정보가 있습니다. 이것은 삽입 및 삭제 작업을 위한 일정한 시간을 허용합니다. 할당자 인식 할당자 개체는 저장소 크기를 동적으로 수정하는 데 사용됩니다.목록에 값을 삽입하는 데 사용할 수 있는 다양한 기능이 있습니다. 이를 시연해 보겠습니다.
#include <algorithm> #include <iostream> #include <list> int main() { std::list<int> my_list = { 12, 5, 10, 9 }; my_list.push_front(11); my_list.push_back(18); auto it = std::find(my_list.begin(), my_list.end(), 10); if (it != my_list.end()) { my_list.insert(it, 21); } for (int x : my_list) { std::cout << x << '\n'; } }
출력:
다음은 코드의 스크린샷입니다.
코드 설명:
목록에서 항목을 삭제할 수 있습니다. Erase() 함수를 사용하면 목록에서 항목 또는 항목 범위를 삭제할 수 있습니다.
#include <algorithm> #include <iostream> #include <list> using namespace std; int main() { std::list<int> my_list = { 12, 5, 10, 9 }; cout << "List elements before deletion: "; for (int x : my_list) { std::cout << x << '\n'; } list<int>::iterator i = my_list.begin(); my_list.erase(i); cout << "\nList elements after deletion: "; for (int x : my_list) { std::cout << x << '\n'; } return 0; }
출력:
다음은 코드의 스크린샷입니다.
코드 설명:
C 언어
지금까지 C#을 사용하여 콘솔 기반 애플리케이션을 만드는 방법을 살펴보았습니다. 그러나 실제 시나리오에서 팀은 일반적으로 Visual Studio와 C#을 사용하여 Windows Forms 또는 웹 기반 응용 프로그램을 만듭니다. Windows 양식 응용 프로그램은 컴퓨터에서 실행되도록 설계된 응용 프로그램입니다. 웹 응용 프로그램이 되기 때문에 웹 브라우저에서 실행되지 않습니다. 이 자습서에서는 Windows 기반 응용 프로그램을 만드는 방법에 중점을 둘 것입니다. 또한 C# Windows 응용 프로그램의 다양한 요소를 사용하
C에서 malloc이란 무엇입니까? malloc() 함수는 메모리 할당을 나타냅니다. 메모리 블록을 동적으로 할당하는 데 사용되는 함수입니다. 지정된 크기의 메모리 공간을 예약하고 메모리 위치를 가리키는 널 포인터를 반환합니다. 반환된 포인터는 일반적으로 void 유형입니다. 그것은 우리가 모든 포인터에 malloc 함수를 할당할 수 있다는 것을 의미합니다. 구문 ptr = (cast_type *) malloc (byte_size); 여기, ptr은 cast_type의 포인터입니다. malloc 함수는 할당된 byte_s